在调查我的应用程序中的一些问题时,我发现了一些奇怪的事情.
基本上这个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()); } }
不知何故,在我的1280×1024分辨率显示器上,这导致:
java.awt.Dimension中[宽度= 1296,高度= 1010]
谁知道这是怎么回事?特别是宽度高于应该发生的事实.
问候.
解决方法
窗口边框可能是8像素宽.最大化时,Windows会调整窗口大小,使客户端区域的宽度达到1280像素.然后窗口的整个宽度为8 1280 8像素= 1296像素.高度也是如此.
当在多个监视器上使用扩展桌面时,有时可以注意到当窗口在一个屏幕上最大化时,可以在相邻屏幕上看到窗口的边框.