JDialog没有居中

时间:2014-09-11 06:09:56

标签: java swing jdialog

我试图将对话框放在中心(我正在使用java 1.3),但它似乎不起作用。 我尝试了所有以下方式..

dialog.setSize(100, 100);
dialog.setResizable(true);

dialog.setLocation(150, 250);
dialog.setLocationRelativeTo(dialog.getParent());

当我在setSize方法中更改值时,对话框的大小不会改变。 当我在setLocation方法中更改值时,位置不会更改。 这是非常古老的代码,所以我不太清楚该做什么或如何让它工作..

1 个答案:

答案 0 :(得分:1)

首先,您应该构建对话框的内容,并且只打算调整大小并在此之后设置其位置。

最好使用正确的布局管理器,并且一旦将所有组件(内容)添加到其中,只需调用其pack()方法让布局管理器计算大小。

之后你可以通过调用:

来简单地居中
dialog.setLocationRelativeTo(null);

传递null表示将其置于屏幕中心。引自javadoc

  

如果组件为null,或与此组件关联的GraphicsConfigurationnull,则窗口将位于屏幕中央。可以使用GraphicsEnvironment.getCenterPoint方法获得中心点。

虽然如果它有一个父项,{I}应该像你一样传递,如果它没有父项(dialog.getParent())也可以。