6

我想复制此处显示的示例:

环绕布局

使用 MiGLayout。我尝试了一些组合,但是当容器缩小时,我很难让按钮自动换行到新行。

有人可以提供一个这样做的工作示例吗?

这是该程序的外壳:

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

public class MiGTest extends JFrame{
    private JPanel jPanel;
    private JButton jButton;

    public static void main(String[] args) {
        new MiGTest().setVisible(true);
    }

    public MiGTest(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new MigLayout("debug"));

        initComponents();
        addComponents();
        pack();
    }


    private void addComponents() {      
        add(jPanel);{
            for (int i = 0; i < 10; i++) {
                jPanel.add(new JButton("" + i));
            }
        }
    }

    private void initComponents() {
        jPanel = new JPanel(new MigLayout("debug"));
        jButton = new JButton("Test");  
    }
}
4

2 回答 2

9

根据 MiGLayout 的创建者和以下问题的答案:

http://migcalendar.com/forums/viewtopic.php?f=8&t=3421

http://migcalendar.com/forums/viewtopic.php?f=8&t=2270&hilit=wrap+container

http://migcalendar.com/forums/viewtopic.php?f=8&t=2015&hilit=wrap+container

http://migcalendar.com/forums/viewtopic.php?f=8&t=1137&hilit=wrap+container

, MiGLayout 根本不支持这个。它也不支持在单个单元格内包装。

于 2011-04-20T12:19:37.990 回答
0

我一直在声明 .width("xx%") ,然后在行的宽度加起来达到 100% 时调用 wrap 。如果您可以将每个组件声明为一行的某个百分比(它们不必都是相同的百分比),则此方法有效。

于 2012-12-07T19:15:36.370 回答