我有一个 controlPanel
( BoxLayout
):
controlPanel.setLayout(new BoxLayout(controlPanel, BoxLayout.Y_AXIS));
现在我造了两个 FlowLayout
并将它们添加到 contolPanel
面板:
JPanel fromDatePanel = new JPanel(new FlowLayout());
JPanel untilDatePanel = new JPanel(new FlowLayout());
fromDatePanel.add(new JLabel("From - "));
fromDatePanel.add(new JButton("..."));
untilDatePanel.add(new JLabel("Until - "));
untilDatePanel.add(new JButton("..."));
controlPanel.add(fromDatePanel);
controlPanel.add(untilDatePanel);
我明白了:
为什么会在布局之间产生间隙?如果我插入 JButton
例如,它工作正常(插入时没有间隙)。
我怎样才能消除两者之间的差距 FlowLayout
? (所以就像蓝色的缺口)
3条答案
按热度按时间b0zn9rqh1#
可以使用以下方法实现垂直布局(垂直居中)
GridBagLayout
(并使用GridBagConstraint
用一个gridwidth=REMAINDER
):关于
JButton
以及JPanel
当添加到BoxLayout
,这是由于执行的不同getMaximumSize()
这是由BoxLayout
.JButton
返回首选大小JPanel
会回来的null
由BoxLayout
作为无限的维度。如果你想保留你的
BoxLayout
,您可以重写JPanel.getMaximumSize()
然后回来getPreferredSize()
:oewdyzsn2#
有关详细信息,请参见使用不可见组件作为填充
Box.createVerticalGlue()
.zphenhs43#
我曾经
BorderLayout
而且成功了。编辑-1:
可以在每个面板中添加嵌套面板。