我打算制作一个 ContentPanel 为 600x600 的 JFrame,并且我希望 JFrame 不能重新调整大小。在这个盒子里,我画了一个 600x600 的红色轮廓矩形,以确保在我运行程序时一切都匹配。在限制 JFrame 的大小调整之前,我通过执行以下操作来设置 JFrame 的大小:
getContentPane().setPreferredSize( new Dimension(600,600));
pack();
当我启动程序时,我的矩形边界与 JFrame 的尺寸完美契合。但是,当我将 isResizable(false) 添加到等式中时,矩形的右边缘和矩形的底边缘之间似乎存在像素缓冲区。通过一些试验和错误,似乎 isResizable(false) 在高度和宽度上增加了 10 个像素。(因此 contentPane 的尺寸为 590x590 + 额外的 10 是我的解决方法)
我的问题 为什么会这样?我似乎在任何地方都找不到关于额外 10 像素的任何文档?
注意:通过在不修改大小的情况下制作 JFrame 也观察到此异常。如果不使其不可调整大小,则没有可观察的面板/内容窗格,但是当使用 isResizable(false) 时,面板/窗格的可见部分。