JFrame:获得没有边框的大小?

Tom*_*Tom 26 java swing awt jframe

在Java中,是否可以在没有标题和其他边框的情况下获得JFrame的宽度和高度?

frame.getWidth()和frame.getHeight()1似乎返回包括边框的宽度.

谢谢.

use*_*041 36


frame.getContentPane().getSize();

  • 谢谢!frame.pack(); 应该存在于此命令之前.否则,它将返回(0; 0). (3认同)

小智 7

frame.pack();
System.out.println("frame width : "+getWidth());
System.out.println("frame height: "+getHeight());
System.out.println("content pane width : "+getContentPane().getWidth());
System.out.println("content pane height: "+getContentPane().getHeight());
System.out.println("width  of left + right  borders: "+(getWidth()-getContentPane ().getWidth()));
System.out.println("height of top  + bottom borders: "+(getHeight()-getContentPane().getHeight()));
Run Code Online (Sandbox Code Playgroud)


Gar*_*ary 5

这很好用

frame.getContentPane().getSize();
Run Code Online (Sandbox Code Playgroud)

但如果您尚未添加内容,则不会。就我而言,我想在添加内容之前计算 JFrame 的内部尺寸,以便我可以相应地划分内容。这就是我的想法。

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

pack(); // Need this, otherwise insets() show as 0.  
int scrW = (int)screenSize.getWidth();
int scrH = (int)screenSize.getHeight();
  int innerW = scrW - getInsets().left - getInsets().right;
  int innerH = scrH - getInsets().top - getInsets().bottom;

  // Need to setSize(), otherwise pack() will collapse the empty JFrame
  setSize(scrW, scrH);
Run Code Online (Sandbox Code Playgroud)