4

如何获得扩展 JFrame 的宽度和高度?(通过)

setExtendedState( getExtendedState() | JFrame.MAXIMIZED_BOTH);
4

3 回答 3

4

添加到我的评论:

嗯,在将 JFrame 设置为 JFrame.MAXIMIZED_BOTH 后调用 getWidth 和 getHeight 有什么问题

您确定在JFrame可见并且尺寸状态已更改后调用它吗?IE:

frame.setExtendedState( getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.pack();
frame.setVisible(true);

System.out.println(frame.getWidth()+" "+frame.getHeight());

另一种解决方案是简单地通过

GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
System.out.println("Screen Bounds: " + bounds ); 

因为那将是JFrame状态JFrame.MAXIMIZED_BOTH的大小

于 2012-12-27T12:35:55.877 回答
1

之后frame.setVisible(true)

double width = frame.getSize().getWidth();
double height = frame.getSize().getHeight();
于 2012-12-27T12:35:20.550 回答
1
frame.getContentPane().getSize();

您将失去装饰标题栏的大小。或者获取rootPane,甚至更好。

于 2012-12-27T12:31:26.133 回答