Java 组件上方的小窗口

Java 组件上方的小窗口,java,swing,window,components,Java,Swing,Window,Components,我已经看过java库了,不知道用什么来做这个。。 我已经试过JInternalFrame,但那不是我真正想要的。。因为它需要添加到JDesktopPanel中,对吗 在我的程序中,我有一个使用BorderLayout的JFrame和内容窗格。。 然后在borderlayout中心我有一个JTextArea,在borderlayout东部我有一个列表。。在南部我有一辆JPanel 我想要的是,当我做某个动作时,它会弹出一个“小窗口”,在那里我需要选择一些东西。。你明白了吗? 如果我创建JDeskt

我已经看过java库了,不知道用什么来做这个。。 我已经试过JInternalFrame,但那不是我真正想要的。。因为它需要添加到JDesktopPanel中,对吗

在我的程序中,我有一个使用BorderLayout的JFrame和内容窗格。。 然后在borderlayout中心我有一个JTextArea,在borderlayout东部我有一个列表。。在南部我有一辆JPanel

我想要的是,当我做某个动作时,它会弹出一个“小窗口”,在那里我需要选择一些东西。。你明白了吗? 如果我创建JDesktopLane,它将与容器上的内容重叠

窗口将由我制作,像一个颜色选择器托盘,像一个有颜色的网格。。顶部还有一个标签,上面写着一些文字

我只是不知道如何在其他组件上创建一个“窗口”,用户仍然可以在框架上拖动,并与所有其他组件交互。。这个地区等等

我想你明白了,提前多谢!! 如果你不明白,请告诉我,我真的很想这么做:) 只是不知道该用什么


再次感谢;)

你试过了吗?

你试过了吗?

这是因为Jdialog不是要添加到JFrame中的组件,它是独立运行的


如果使用JDialog,构造参数parent表示JDialog与哪个框架相关。

这是因为JDialog不是要添加到JFrame中的组件,它是独立运行的


如果使用JDialog,构造参数parent表示JDialog与哪个框架相关。

此任务的典型类是
JWindow
,一个可以自由定位的无边界顶级窗口。您可以使用
SwingUtilities.getPointFromComponent
获取已实现坐标的屏幕坐标

顶级窗口(JFrame、JDialog、JWindow)不会添加到容器中。他们可以将其他窗口作为父窗口

我不想用另一个JFrame。。这对代码来说有点糟糕,它是一个带有简单函数的小窗口

构造您的代码,以便您可以阅读它,其他人可以阅读它,并且您可以轻松地调试它(后者是第一个代码的结果)。低等级计数是无用的,而且——大多数情况下——会适得其反

为什么另一个JFrame(或其他窗口)应该是坏的


如果您绝对不想打开顶级窗口(例如,为了避免小程序警告图标或实现特殊类型的用户界面),您可以使用
JLayeredPane
在现有GUI元素上方添加额外的
JPanel

此任务的典型类是
JWindow
,可以自由定位的无边框顶层窗口。您可以使用
SwingUtilities.getPointFromComponent
获取已实现坐标的屏幕坐标

顶级窗口(JFrame、JDialog、JWindow)不会添加到容器中。他们可以将其他窗口作为父窗口

我不想用另一个JFrame。。这对代码来说有点糟糕,它是一个带有简单函数的小窗口

构造您的代码,以便您可以阅读它,其他人可以阅读它,并且您可以轻松地调试它(后者是第一个代码的结果)。低等级计数是无用的,而且——大多数情况下——会适得其反

为什么另一个JFrame(或其他窗口)应该是坏的


如果您绝对不想打开顶级窗口(例如,为了避免小程序警告图标或实现一种特殊的用户界面),您可以使用
JLayeredPane
在现有GUI元素上方添加额外的
JPanel
s。

我忘了说,我不想使用另一个JFrame。。这对代码来说有点糟糕,它是一个带有简单函数的小窗口。。从网格中选择颜色:)我忘了说,我不想使用另一个JFrame。。这对代码来说有点糟糕,它是一个带有简单函数的小窗口。。从网格中选择颜色:)是的,但我无法将其添加到框架的内容窗格中。。它给了我控制台上的错误。感谢您的回复
错误是:线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常:向容器添加窗口
您不会向JFrame添加JDialog。创建对话框的方法与创建JFrame的方法相同,只需使其可见即可。成功了!!这可能就是我想要的:)它会给小程序带来问题吗?谢谢,我有一个问题!我需要处理JDialog吗?当我点击“X”按钮关闭时?还是自动处理?退出窗口应释放其所有资源。调用“dispose”以编程方式关闭它。是的,但我无法将其添加到框架的内容窗格中。。它给了我控制台上的错误。感谢您的回复
错误是:线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常:向容器添加窗口
您不会向JFrame添加JDialog。创建对话框的方法与创建JFrame的方法相同,只需使其可见即可。成功了!!这可能就是我想要的:)它会给小程序带来问题吗?谢谢,我有一个问题!我需要处理JDialog吗?当我点击“X”按钮关闭时?还是自动处理?退出窗口应释放其所有资源。调用“dispose”以编程方式关闭它。我的意思是。。如果我想在小程序上使用它。。2帧不行,我的老师告诉我:最好的图形代码是只使用一帧的。。然后你把你想要的东西都加进去。。你是说我可以把JWindow添加到框架contentor中?感谢技术上经常需要多个窗口(如这里的弹出窗口)。从用户体验来看,一个主窗口就足够了(对于最终用户应用程序);仍然会有对话框和弹出窗口。从类计数或开发人员的角度来看,这并不重要——当然,两个窗口都可以工作,有什么可以阻止它呢?/小程序有一个限制:当你从一个小程序打开一个窗口时,你会在窗口旁边看到一个小的警告图标,这样你就不能捕获用户