我目前正在做一项涉及创建电梯模拟的作业。这是我目前所在的位置:
我的工作方式是,当右侧的组合框更改时,地板线会根据面板尺寸自动重新绘制。现在棘手的部分是我只想在左侧“楼层”面板中打印楼层号码,就在楼层线的顶部。但是,我不知道该怎么做。我考虑了设置空布局并根据地板高度(我已将其保存在数组中)定位 jlabel 的想法。但我所到之处,人们都说这是一个坏主意。
那么有人可以建议一种使用布局管理器来完成此任务的方法吗?谢谢。
最佳答案
首先将您的 UI 分解为可管理的 block ,这将使您能够专注于每个部分的单独需求,而不会不知所措......
...首先...
这建议使用 BorderLayout
,将红色部分放在 BorderLayout.NORTH
中位置和绿色在BorderLayout.CENTER
位置。
...下一步...
header 分为(至少)两个部分,这表明 GridLayout
...
...下一步...
正文建议三个相等的列,这可以通过 GridLayout
来实现甚至是GridBagLayout
,如果您需要每列的宽度不同......
...下一步...
这可能是最复杂的。从“蓝色”部分开始可能会受益于 GridLayout
,如果Number of floors
标签和 JComboBox
独自居住JPanel
(如果您想要更多控制,可以使用 GridBagLayout) or a
GridBagLayout`
red
部分可能是使用 GridLayout
所有三个部分可能会用 GridBagLayout
粘合在一起。 ...
例如...
关于java - 寻求有关布局选项的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050757/