我已经使用Java很长一段时间了,我一直没有找到解决这个问题的方法。当我创建一个JFrame时,它周围的窗口实际上比框架小。在包含的图片中,我的JFrame大小是800x600。两条白线在相框的中央交叉,400,300。如你所见,它们不在窗户的中央。如果我向右和向下伸展窗户,我可以看到一些黑色背景的框架是隐藏的。当黑色背景被揭示时,你可以看到这些线确实在中心交叉(第二张图片)。
它为什么会那样工作?我能做些什么来解决这个问题?我正在制作一个游戏,游戏中的角色在屏幕的中央,所以这给我带来了很多问题。第一张图片更大,因为我把代码留在了后台。正如我们所看到的,这是一个标准的JFrame创建。
不居中,因为帧的一部分是隐藏的:

当框架完全显露时居中:

发布于 2020-01-04 21:50:10
我的JFrame尺寸是800x600
你在倒行逆施。
这个框架有装饰.标题栏和边框)。您所画的面板被添加到框架中,因此它将小于框架的大小。
正确的方法是重写getPreferredSize()方法的JPanel,在那里您可以进行定制绘图以返回所需的面板大小。
然后将面板添加到框架中,调用框架上的pack()方法。现在,框架将尺寸稍大(以适应完整的面板和框架装饰),你的绘画将是准确的。
https://stackoverflow.com/questions/59585251
复制相似问题