沧海一幻觉
从你所说的声音来看,我认为你误解了一个普通的(装饰的)框架的尺寸包括什么。A JFrame由窗口/框架(通常用边框装饰)组成,JRootPane,其中包含JLayeredPane其中包含内容窗格,JMenuBar还有玻璃。这就是为什么不应该覆盖顶级容器的原因之一。paint方法,因为您实际上不会在内容/视图区域内绘制。因此,框架的实际“可画”区域是width - border.width x height - border.height红线表示框架,蓝色表示内容窗格。这提出了一个非常重要的问题,框架的中心在哪里?从框架的角度来看,它是100x100,但从内容窗格的角度来看,它是92x81。取决于您想要的内容,将取决于您将使用的值。为了定位框架,您将希望使用框架中心点,对于绘图,您将希望使用内容窗格。现在,在屏幕上居中帧的最简单的方法就是调用Window#setLocationRelativeTo(null)否则,我建议您使用Timr的解决方案;)