gpt4 book ai didi

java - 即使调整大小,如何获得屏幕的精确中间位置

转载 作者:行者123 更新时间:2023-12-02 13:21:53 25 4
gpt4 key购买 nike

好的,这个问题有两个部分。

  1. 当我制作一个 JFrame 并在其上绘制一些内容时,即使我将宽度设置为 400,并使其在某个项目击中它时(允许项目宽度,当然)它会反弹。但由于某种原因,它总是偏离屏幕约 10 个像素。有没有办法解决这个问题,或者我只需要通过加/减数字来补偿?

  2. 如何获得精确的屏幕中心。因此,如果我制作一个默认为 200*200 像素的 JFrame,那么中心将为 100*100。 (考虑到问题 1 中的问题)但是如果有人调整屏幕大小(是的,我希望他们能够调整屏幕大小),该点仍然是中心。因此,如果他们将其设为全屏并且屏幕尺寸为 1200*900,则中心将为 600*450。

我希望这足够清楚

最佳答案

从您所说的声音来看,我认为您误解了正常(装饰)框架的尺寸。

JFrame 由一个窗口/框架(通常用边框装饰)、一个 JRootPane 组成,其中包含一个 JLayeredPane,其中包含内容 Pane 、JMenuBar 和玻璃 Pane 。

enter image description here

这是您永远不应该重写顶级容器 paint 方法的原因之一,因为您实际上不会在内容/ View 区域内进行绘制。

因此,框架的实际“可绘制”区域是它的宽度 - border.width x 高度 - border.height

enter image description here

红线表示框架,蓝色表示内容 Pane 。

这就提出了一个非常重要的问题,画面的中心在哪里?从框架的角度来看,它是 100x100,但从内容 Pane 的角度来看,它是 92x81。取决于您想要什么,取决于您将使用哪个值。为了定位框架,您将需要使用框架中心点,为了绘画,您将需要使用内容 Pane 。

现在,将框架置于屏幕中央的最简单方法就是调用 Window#setLocationRelativeTo(null)否则,我建议您使用 Timr 的解决方案;)

关于java - 即使调整大小,如何获得屏幕的精确中间位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13457237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com