使用 JDialog构造函数(在其中指定了拥有的JFrame实例),我发现JDialog不在其所有者组件上居中。 而是显示在左上角。 为了使其正常工作,我必须在setLocationRelativeTo方法中指定所有者组件。

为什么是这样?

工作环境:

  • 双显示器
  • Windows XP作业系统
  • JDK 1.6.0_29

请注意,对于JFrame实例,我使用setLocationRelativeTo(null)

===============>>#1 票数:3

我认为JDialog非常笼统。 如果要快速弹出常规对话框,请查看JOptionPane 它具有轻松创建居中JDialog组件或立即弹出阻止对话框窗口的方法。

例如

JDialog dialog = new JOptionPane("message", JOptionPane.INFORMATION_MESSAGE)
    .createDialog(jFrameOwner, "window title");

尽管您可能真的很想看看JOptionPane.showXxxDialog静态方法。 非常有用和方便。

您可能希望看一下对话框教程 Java Web Start应用程序产生的所有对话框都可以使用JOptionPane类产生。

===============>>#2 票数:2

听起来像是一个设计决定。 有时,您想给对话框提供对它的父级的引用,而无需将其位置居中。

  ask by mre translate from so

未解决问题?本站智能推荐:

4回复

Java Swing:居中组件

我正在使用一个Swing UI,希望在其中将多个组件(JDialogs和JFrames)居中。 我知道以下代码将计算用户的屏幕尺寸,从那里,我可以轻松地将组件居中: 为了提高效率,我应该只计算一次并将其存储在某种常量中,以便可以在项目的任何部分中重复使用。 将其存储以供以后重用以便跨
2回复

在JTabbedPane上使用JPanel中心JDialog

我已经尝试了我在这里和其他网站上找到的所有建议。 我似乎无法让这个JDialog集中在JTabbedPane上的面板上。 请注意,我必须禁用关闭按钮,因此我不能使用标准的JOptionPane.showDialogXYZ()方法。 有任何想法吗? }
1回复

JDialog不在父JFrame上居中

我试图让我的JDialog在单击按钮时弹出到JFrame的中心。 我有JOptionPanel可以在父JFrame上正确弹出,但是JDialog是相对于JFrame弹出而不是在中心弹出。 这些按钮实际上是我的代码中的JMenuItem,但是我在这里将它们写为JButton来使事情变得简单
3回复

有没有办法改变JDialog的所有者?

我有一个非常具体的问题,我想知道是否有办法更改JDialog的所有者(可以使用构造函数设置)。 我想没有“官方”的可能性(除了黑客),但我想确保我没有错过任何东西。 关于这个主题的任何想法或提示都会有所帮助,谢谢......
1回复

JDialog未居中[关闭]

我试图居中设置对话框(我使用的是Java 1.3),但似乎无法正常工作。 我尝试了以下所有方式。 当我更改setSize方法中的值时,对话框的大小不会更改。 当我更改setLocation方法中的值时,位置不会更改。 这是很旧的代码,所以我不太确定该怎么做或如何使其正常工作。
1回复

Jdialog中的组件未显示

我的应用程序是使用Netbeans IDE(8.0.2)创建的。 我创建了一个JFrame,其中包含绑定到数据库的JTable(使用JPA)。 我添加了一个“刷新”按钮,该按钮用于直接从数据库中“刷新” JTable数据。 我希望在获取数据时显示“请稍候”消息。 为此,我实现
5回复

如何将组件添加到JDialog

我想在JDialog中添加组件,例如TextField,Button ......
3回复

JDialog中的组件未显示

首先:我知道这个问题似乎已经被问了好几百万遍了,但是其他问题的答案似乎都不适合我。 有时,当我在下面的代码中运行Message.popup(String, int)时,文本会正确显示,但是有时JDialog是空的,就像根本没有添加组件一样。 没有update(getGraphics
3回复

将组件添加到JDialog

当我运行它时,会显示一个空标题栏。 我只是希望能够从那里看到组件和工作,但没有显示任何内容。 该对话框旨在允许用户通过移动滑块选择颜色,然后返回到主页面的颜色。
3回复

动态将组件添加到JDialog

当用户单击JDialog上的按钮时,无法将JComponents添加到JDialog。 基本上我希望它看起来像这样: 然后,当用户单击“添加新字段”时,我希望它看起来像这样: 我似乎无法获得添加新JLabel或JTextField的对话框。 谁能指出我正确的方向? 编辑