在 Java Swing 中定位标签



我已经通过了很多教程来教授Java Swing中的布局,但它们似乎不足以满足我的需求。我正在使用Java Swing创建一个太阳系GUI,我想根据我从微控制器获取的值(通常是浮点值(将行星放置在GUI中。我无法使用网格袋布局,因为要定位标签,我必须指定网格 x 和网格 y,这是不可能的,因为我从微控制器接收浮点值。我发现的最好的资源是使用绝对布局,我可以通过仅提供 X 和 Y 坐标来指定行星的位置,这些坐标将从微控制器获取。我现在面临的问题是绝对布局没有自动调整大小功能。

在绝对布局中采用自动调整大小功能的最佳选择是什么?

Swing 教程通常不适用于这种情况 - 它们适用于想要编写更普通的 GUI 应用程序的人,使用按钮、下拉框、复选框、单选按钮、菜单,并且布局遵循当前接受的做法,在屏幕上定位这些应用程序。 如果其中任何一个适用于你的节目中不显示行星的部分,我鼓励你使用他们所说的。

但是你想根据自己的计算来放置东西。 我建议在面板中执行此操作,根据绘图点面板的大小计算对象的大小和位置。 当面板调整大小时,您需要捕获表示它正在调整大小和重绘的事件。您将需要处理自己的最小值和最大值等。

出于几个原因,我不建议使用其他地方建议的自定义布局管理器。 首先,它根本不会为你节省任何工作——你仍然需要编写确定事物位置的代码,如果你只是绘制自己的图形而不是尝试定位 UI 元素,我认为它实际上会减少工作量。 这是第二个原因 - 布局管理器的目的是在面板中放置UI元素,而太阳系的各个部分实际上不需要是UI元素,只需屏幕上的图形。

祝你好运。

最新更新