在MigLayout中拆分单元格时如何获得零间隙?

时间:2016-04-22 11:45:22

标签: java swing layout-manager miglayout

以下代码

public class JSplitGap extends JPanel {

   {
      setLayout(new MigLayout());
   }

   {
      JButton ans = new JButton("Button 1");
      add(ans, "split 2");
   }

   {
      JButton ans = new JButton("Button 2");
      add(ans, "");
   }

   public static void main(String[] args) {
      JFrame frame = new JFrame();
      frame.setContentPane(new JSplitGap());
      //frame.setSize(1024, 768);
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
   }
}

给出以下

enter image description here

即。按钮之间有一些间隙。

虽然有人说

  

split [count]在多个子单元格中拆分单元格。几乎   这意味着下一个计数数字组件将被放入   相同的细胞,彼此相邻,没有间隙。只有第一个组件   单元格可以设置拆分,单元格中的任何后续拆分关键字   将被忽略。如果未指定,则默认为无限   意味着单独拆分将使所有即将到来的组件相同   细胞。 “分裂”,“换行”或“换行”将突破分裂区。   后两者将像往常一样移动到新的行/列。注意! “跳跃”   如果拆分将跳过,并继续在下一个单元格中。   示例:“split”或“split 4”。

<{3>}中的

这里有什么问题以及如何解决?

2 个答案:

答案 0 :(得分:0)

试试这个

setLayout(new MigLayout("gap rel 0", "grow"));

答案 1 :(得分:0)

您可以使用gapx组件在按钮之间设置间隙 约束:

package com.zetcode;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout;

public class MigLayoutSplitGapEx extends JFrame {

    public MigLayoutSplitGapEx() {

        initUI();
    }

    private void initUI() {

        setLayout(new MigLayout());

        JButton ans = new JButton("Button 1");
        add(ans, "split 2");

        JButton ans2 = new JButton("Button 2");
        add(ans2, "gapx 0");

        pack();
        setTitle("MigLayout split gap");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(() -> {
            MigLayoutSplitGapEx ex = new MigLayoutSplitGapEx();
            ex.setVisible(true);
        });
    }
}

以下是截图:

enter image description here