我正在开发Java Swing应用程序。我该如何做到这一点,以便当程序本身和其他窗口打开时,它们会出现在屏幕的中心?中心摆动窗口
Q
中心摆动窗口
17
A
回答
47
frame.setLocationRelativeTo(null);
1
您必须手动使用setLocation(x,y)
。
喜欢的东西:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((dim.width-frameWidth)/2, (dim.height-frameHeight)/2);
应该这样做(未测试)。
1
在多屏幕环境做手工给出这样的事情(静态的,因为你可能会想它一个实用工具类):
public static Rectangle getScreenBounds(Component top){
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gd = ge.getScreenDevices();
if (top != null){
Rectangle bounds = top.getBounds();
int centerX = (int) bounds.getCenterX();
int centerY = (int) bounds.getCenterY();
for (GraphicsDevice device : gd){
GraphicsConfiguration gc = device.getDefaultConfiguration();
Rectangle r = gc.getBounds();
if (r.contains(centerX, centerY)){
return r;
}
}
}
return gd[0].getDefaultConfiguration().getBounds();
}
public void centerWindowOnScreen(Window windowToCenter){
Rectangle bounds = getScreenBounds(windowToCenter);
Point newPt = new Point(bounds.x + bounds.width/2, bounds.y + bounds.height/2);
Dimension componentSize = windowToCenter.getSize();
newPt.x -= componentSize.width/2;
newPt.y -= componentSize.height/2;
windowToCenter.setLocation(newPt);
}
至于默认按钮,它的JDialog.getRootPane().setDefaultButton(btn)
,但按钮必须已经添加到对话框中,并且可见。
4
3
这是很容易,如果你使用的是NetBeans。 在属性窗口的JFrame去“代码”选项卡。有一个选项为“生成中心”。检查该选项。 JFrame将显示在中心。
相关问题
- 1. 摆动窗口不可见
- 2. Flex:中心窗口?
- 3. 如何在摆动上打开窗口
- 4. dicom窗口中心,窗口宽度
- 5. 核心动画 - 片状窗口滑动
- 6. 中心窗口组件
- 7. 图片中心窗口
- 8. 摆脱任务栏中的XAML窗口
- 9. 核心动画窗口翻转效果
- 10. 显示概览的滚动窗格/视口摆动组件
- 11. 居中窗口,它的父窗口的中心妥善PyQt5
- 12. 移动滚动条时总是保持窗口在中心
- 13. 如何摆脱Python Tkinter根窗口?
- 14. 如何摆脱控制台窗口
- 15. 摆脱硒服务器的窗口
- 16. 从窗口中拖动窗口WPF
- 17. silverlight中摆摆动动画
- 18. 只有一个摆动框架窗口在时间打开
- 19. 添加SWT窗口小部件,摆动的JPanel
- 20. 摆动访问另一个窗口的故障
- 21. 改善摆动窗口的可访问性
- 22. window.onbeforeunload的中心提示窗口
- 23. 使弹出窗口为中心
- 24. Silverlight:将子窗口重置为中心
- 25. 在窗口中心定位div(垂直)
- 26. WPF - XAML页面中心到窗口
- 27. bxslider中心图片浏览器窗口
- 28. 中心矩形在新窗口
- 29. 用JavaScript中心弹出一个窗口
- 30. 浏览器窗口中心问题
这是否也适用于旧版本的Java?我很惊讶,因为前一段时间我想通过“手工”来解决这个问题的唯一方法就是这样解释:http://www.java2s.com/Code/Java/Swing-JFC/Howtocenteraframeordialog.htm – 2010-06-21 03:55:53
从1.4开始有效,但您必须确保您先正确包装或以其他方式确定屏幕的大小。 – Yishai 2010-06-21 04:09:54
当你不知道它时,并不是很明显,但[setLocationRelativeTo()](http://tinyurl.com/34syhcj)的行为,其实是一个null,实际上是将该窗口居中,如javadoc中所述。 – Gnoupi 2010-06-21 08:16:16