我有我自己的主框架和两个 JDialogs,当有人选择菜单项时会弹出。我想要一个包含一些规则、建议等的帮助对话框。 setLayout(null) 和 Toolkit/Dimension 当然没有帮助因为它们在屏幕中将框架/对话框的左上角居中。框架和对话框的中心怎么能在屏幕上居中呢?提前致谢 !
问问题
146 次
5 回答
3
按顺序执行这些操作:
1)调用pack()
或setSize(...)
在要显示的框架/对话框上(此时它应该已经添加了它的组件)。
2)然后,调用setLocationRelativeTo(null)
该容器。或者,setLocationRelativeTo(parent)
如果父级偏移并且您希望对话框在父级内的当前位置居中,则可以调用。
3)然后,调用setVisible(true)
于 2013-08-10T18:35:59.780 回答
2
我认为这会有所帮助:
frame.setLocationRelativeTo(null);
通常我们将 anull
作为参数,但您可以输入 type 的参数Component
,我更喜欢它,JOptionPane
因为它总是显示在屏幕中央。
frame.setLocationRelativeTo(new JOptionPane());
//OR
frame.setLocationRelativeTo(JOptionPane.getRootFrame());
- 给你一个提示,不要使用
null
布局(绝对定位),总是使用LayoutManagers
.
于 2013-08-10T18:29:39.540 回答
2
setLocationRelativeTo(null)
Dialog
如果您还没有大小,则只会将左上角居中,例如,如果您.pack()
在setLocationRelativeTo
.
小例子:
JFrame testFrame = new JFrame();
JButton testButton = new JButton();
testButton.setPreferredSize(new Dimension(500, 500));
testFrame.add(testButton);
testFrame.pack();
testFrame.setLocationRelativeTo(null);
testFrame.setVisible(true);
这将显示一个中心位于屏幕中心的框架。
于 2013-08-10T18:31:23.087 回答
1
使用此辅助方法将任何 JFrame 或 JDialog 居中:
public static Window centerFrame(Window win) {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
win.setLocation((int) ((dim.getWidth() - win.getWidth()) / 2), (int) ((dim.getHeight() - win.getHeight()) / 2));
return win;
}
于 2013-08-10T18:24:35.550 回答
0
尝试将此添加到您的代码中:
frameName.setLocationRelativeTo(null);
这将使框架在您的屏幕中居中。一件事,确保在这行代码之前声明框架的大小。此行应在您的setVisible
声明之前
于 2013-08-17T14:07:09.103 回答