首页 >Java >java教程 >如何在不可调整大小的 Java 框架内正确居中矩形?

如何在不可调整大小的 Java 框架内正确居中矩形?

Linda Hamilton
Linda Hamilton原创
2024-12-05 04:51:14893浏览

How to Properly Center a Rectangle within a Non-resizable Java Frame?

如何在 Java 框架中将矩形居中

问题:

在 Java 中,您创建了一个固定大小为 (800, 400) 的矩形框架并将其设置为不可调整大小。使用坐标 (50, 50, 700, 300) 绘制的矩形似乎稍微偏离框架顶部的中心。

答案:

问题原因在于框架具有固有的装饰(边框和标题栏),它们会消耗框架区域内的空间。当直接绘制到框架的表面时,如本例所示,这些装饰可以移动框架的感知中心。

要在框架的真实中心绘制矩形,您应该将其渲染到框架的表面上内容区。该区域不包括装饰物,代表可用于绘画的表面。

演示:

在提供的 Java 代码示例中:

  • BadFrame: 该框架重写了paint()方法,并将矩形直接绘制到框架本身。它表现出偏离中心的问题。
  • PaintablePane:用作goodFrame内容区域的子容器。它重写 getPreferredSize() 和 PaintComponent() 方法来设置内容区域的大小并正确绘制矩形。

goodFrame 然后使用 PaintablePane作为其内容窗格,确保所有绘画都发生在指定区域内。框架的装饰现在被视为绘画区域的外部,并且矩形按预期居中。

以上是如何在不可调整大小的 Java 框架内正确居中矩形?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn