2013-12-11 95 views
0

如何获得JFrame frame = new JFrame()的实际内容大小?Java:获取JFrame的大小内容

我想frame.getContentPane().getSize(),但由于某种原因,它一直返回0。

CODE:

JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
Dimension windowSize = frame.getContentPane().getSize(); 
System.out.println(windowSize); 
frame.setVisible(true); 

OUTPUT:

java.awt.Dimension[width=0,height=0] 
+0

当您检索大小时,是否显示框架?向我们展示一些代码。 – Obicere

回答

2

您可以在JFrame的后只得到大小已被渲染,否则当前尺寸为 [0,0]。所以请拨打getSize()只有setVisible(true)

只是好奇 - 为什么你需要的信息?


编辑1
每代码:

JFrame frame = new JFrame(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
// Dimension windowSize = frame.getContentPane().getSize(); 
// System.out.println(windowSize); 
frame.setVisible(true); 

Dimension windowSize = frame.getContentPane().getSize(); 
System.out.println(windowSize); 

编辑2
幽州的评论:

我甲肾上腺素编辑将面板设置为内容窗格宽度的一半。谢谢

这个信息应该在你原来的问题,因为它比你想要得到的大小重要得多。其实你的问题的XY problem

一个很好的例子,该解决方案是不得到大小,但使用的布局管理器会为你做这项工作,这里GridLayout(1, 2)可能是你的票。

+0

我需要将面板设置为内容窗格宽度的一半。谢谢 – vcapra1

+1

@VinnieCaprarola使用合适的布局管理器 – MadProgrammer

+0

@VinnieCaprarola:参见**编辑2 **。 –