如何使一个JPanel在另一个JPanel中扩展到最大宽度
2022-09-03 05:08:17
我觉得我需要稍微改写一下这个问题。
在下面更新了问题。
我有一个JPanel,其中包含:
myjpanel.setLayout(new BoxLayout(selectors, BoxLayout.PAGE_AXIS));
它包含以下三个面板:
具有固定大小“x”和“y”的JPanel
没有固定尺寸的JPanel
JPanel,没有固定的尺寸和小高度
第二个JPanel包含一个JTable,因此它扩展以填充整个高度,并按预期将底部面板一直向下推。
喜欢这个:
t
t
m
m
m
m
m
b
t = 顶部面板,m = 中间面板,b = 底部面板。
这行得通。但是底部面板并不像填充父面板的整个宽度,这是一个问题。
ttt
mmm
b
我想要这个,其中面板填充整个宽度:
ttt
mmm
bbb
或者这个,其中底部面板左居中:
ttt
mmm
b
下面的老问题:
我有一个JPanel,其中包含:
.setLayout(new BoxLayout(selectors, BoxLayout.PAGE_AXIS));
在其中,还有三个JPanels。前两个是固定大小,中间一个不是。
我希望我的底部面板只采用它需要的高度,但使用外部JPanel的所有可用宽度。
我尝试过使用胶水,但无济于事,我宁愿不设置首选和最小/最大尺寸。有没有办法告诉组件仅使用布局管理器和框架“填充整个父宽度”。我宁愿不开始做像设置大小和覆盖方法这样的黑客。
注意:我不能在内面板上放任何胶水或填充物,只能修改外面板及其布局管理器。
尝试 1:
使用未产生预期结果。它制作了一个这样的网格:myPanel.setLayout(new GridLayout(3, 1));
XX
X
但我期望:
X
X
X
尝试 2:
使用未产生预期结果。它制作了一个这样的网格:myPanel.setLayout(new GridLayout(0,1));
x
x
x
但所有面板的尺寸都相同,忽略了限制。