adr*_*on3 12 java swing jframe
setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH);
setResizable(false);
setUndecorated(true);
System.out.println("--------> "+getContentPane().getWidth()); //----> 0 why is this happening?
Run Code Online (Sandbox Code Playgroud)
我正在尝试确定JFrame的大小.我在谷歌搜索并检查了文档,我仍然不知道为什么它不会工作它可以正常工作任何其他控件我尝试它
编辑:如果我替换,frame.getWidth()在类(在扩展JFrame)之外调用时仍然有效
System.out.println("--------> "+getContentPane().getWidth());
Run Code Online (Sandbox Code Playgroud)
同
System.out.println("--------> "+this.getWidth());
Run Code Online (Sandbox Code Playgroud)
getWidth仍将返回0
编辑2:我需要框架的大小,然后将其设置为可见和东西.我需要为框架添加其他控件,它们的坐标和大小取决于框架的大小.
aym*_*ric 12
你得到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());
Run Code Online (Sandbox Code Playgroud)
mre*_*mre 10
你还没有意识到(即setVisible(true))JFrame.因此,它没有尺寸,因为它没有布置其组件.