在调查我的应用程序中的一些问题时,我发现了一些奇怪的事情.
基本上这个SSCCE应该证明这个问题:
public class MainFrame extends JFrame {
public MainFrame() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
pack();
}
}
public class Main {
public static void main(String[] args) {
MainFrame mf = new MainFrame();
mf.setVisible(true);
System.out.println(mf.getSize());
}
}
Run Code Online (Sandbox Code Playgroud)
不知何故,在我的1280x1024分辨率显示器上,这导致:
java.awt.Dimension中[宽度= 1296,高度= 1010]
谁知道这是怎么回事?特别是宽度高于应该发生的事实.
问候.
窗口边框可能是8像素宽.最大化时,Windows会调整窗口大小,使客户端区域的宽度达到1280像素.窗口的整个宽度是8 + 1280 + 8像素= 1296像素.高度也是如此.
当在多个监视器上使用扩展桌面时,有时可以注意到当窗口在一个屏幕上最大化时,可以在相邻屏幕上看到窗口的边框.