我写了一个Swing应用程序。我想将JFrame
设置为在用户屏幕中居中。我可以使用以下方法将其设置为屏幕的大致中心位置:
JFrame frame = new JFrame("Test Frame");
Rectangle r = new Rectangle(600, 300, 400, 400);
frame.setBounds(r);
有没有办法定义Rectangle r
,使其中心位于任何屏幕的中心?
setBounds()
是否是动态改变帧位置的错误方法?
答案 0 :(得分:4)
您想在屏幕中居中使用JFrame吗?如果是这样,那么在调用setLocationRelativeTo(null)
后,只需在JFrame上调用pack()
即可。如果你可以避免它,你真的不想设置JFrame的大小,而是让你的布局管理器为你做大小设置。 pack()
方法将要求容器的布局管理器布置其组件并为其组件设置最佳大小。
修改强>
关于你的问题:
谢谢,这很棒。您有机会告诉我在docs.oracle
中可以找到方法详细信息的位置
由于可以在JFrame上调用此方法,只需转到JFrame API即可。如果这是父类的方法,API将告诉您并提供父类及其方法的链接。