Java,JFrame:getWidth()返回0
setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH); setResizable(false); setUndecorated(true); System.out.println("--------> "+getContentPane().getWidth()); //----> 0 why is this happening?
我正在尝试确定JFrame的大小。 我在谷歌搜索并检查了文档,我仍然不知道为什么它不会工作它在任何其他控件上工作正常我尝试它
编辑:如果我替换,frame.getWidth()在类外部(扩展JFrame)调用时仍然有效
System.out.println("--------> "+getContentPane().getWidth());
同
System.out.println("--------> "+this.getWidth());
getWidth仍将返回0
EDIT2:我需要框架的大小才能将其设置为可见和东西。 我需要为框架添加其他控件,它们的坐标和大小取决于框架的大小。
你得到0的原因是因为你没有调用pack(),setSize(int,int)或setSize(Dimension)中的任何一个。 这只是在调用其中一种方法时才会计算帧的布局。
JFrame frame = new JFrame("My Frame"); frame.setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH); frame.setResizable(false); frame.setUndecorated(true); frame.pack(); // Important line!!! frame.setVisible(true); System.out.println("--------> "+getContentPane().getWidth());
你还没有意识到 (即setVisible(true)
) JFrame
。 因此,它没有任何尺寸,因为它没有布置其组件。
- multithreading排序算法
- iText:PdfTable单元垂直对齐
- Spring 4.0.6 with quartz 1.8.6:setCronExpression方法未暴露给CronTriggerBean类
- java GC如何清理相互关联的对象
- 无法在Jersey 2.0中为Jackson启用基于POJO的JSON绑定支持
- GSSexception:不支持/启用具有HMAC SHA1-96的加密类型AES256CTS模式
- 使用Jersey中的配置属性
- 如何将输出文件名从reducer中的part-00000更改为inputfile name
- 如何使用IE更改默认下载目录(Internet Explorer 11)