JFrame大于窗口

问题描述 投票:0回答:1

我已经使用Java Swing相当一段时间了,但是我从未找到解决此问题的方法。当我创建一个JFrame时,围绕它的窗口实际上比框架小。在下面的图片中,我的JFrame尺寸为800x600。 2条白线在框架的中心400,300处交叉。如您所见,它们不在窗口中心。如果我左右拉动窗口,可以看到框架的某些黑色背景被隐藏了。当显示黑色背景时,您可以看到线条确实在中心交叉(第二张图片)。

为什么会这样工作?我能做些什么来解决这个问题?我制作的游戏中可玩角色位于屏幕中央,因此这给我带来了很多问题。第一张图片较大,因为我将代码留在了后台。如我们所见,它是标准的JFrame创建。

未居中,因为部分框架被隐藏:

Not centered because part of the frame is hidden

在完全显示框时居中:

centered when frame is fully revealed

java swing
1个回答
0
投票

我的JFrame大小是800x600

您正在做事落后。

框架具有装饰(即标题栏和边框)。进行绘画的面板将添加到框架中,因此它将小于框架的大小。

正确的方法是重写getPreferredSize()JPanel方法,在该方法中进行自定义绘画以返回所需的面板尺寸。

然后将面板添加到框架中,并在框架上调用pack()方法。现在,框架的尺寸会稍大一些(以适合整个面板和框架装饰),并且您的绘画将是准确的。

© www.soinside.com 2019 - 2024. All rights reserved.