MigLayout - 选择性组件填充

时间:2014-04-28 21:40:26

标签: java swing miglayout

我正在尝试向面板添加JTabbedPane,其上方有按钮用于控件。我正在使用MigLayout。

但是,我不能让JTabbedPane填充,如果他们不需要按钮也会填充。

采取以下SSCCE:

public static void main(String[] args) {
    JPanel panel = new JPanel(new MigLayout(new LC().fill()));
    panel.add(new JButton("+"));
    panel.add(new JButton("-"), "wrap");
    panel.add(new JTabbedPane(), "span, grow");
    JFrame frame = new JFrame();
    frame.add(panel);
    frame.setSize(new Dimension(300, 500));
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

这会生成一个如下所示的面板:

enter image description here

但是,如果我从布局约束(fill())中删除JPanel panel = new JPanel(new MigLayout(new LC()));,它看起来像这样:

enter image description here

如果JTabbedPane未填写,JButton如何填充内容区域?

1 个答案:

答案 0 :(得分:3)

如果您不希望将约束应用于所有单元格,请不要告诉布局;-)而是使用列和行约束:三列,只允许最后一次填充和增长最后一个增长的行

JPanel panel = new JPanel(new MigLayout("", "[][][fill, grow]", "[][fill, grow]"));
panel.add(new JButton("+"));
panel.add(new JButton("-"), "wrap");
panel.add(new JTabbedPane(), "span, grow");