Как я могу заставить MiGLayout вести себя как Wrap Layout? - PullRequest
6 голосов
/ 19 апреля 2011

Я хотел бы повторить пример, показанный здесь:

Wrap Layout

Использование 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");  
    }
}

Ответы [ 2 ]

9 голосов
/ 20 апреля 2011

По словам создателей 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 просто не поддерживает это.Он также не поддерживает перенос в одну ячейку.

0 голосов
/ 07 декабря 2012

Я объявляю .width ("xx%") и затем вызываю wrap, когда ширина строки увеличивается до 100%. Это работает, если вы можете объявить каждый компонент определенным процентом строки (они не обязательно должны быть одинаковыми).

...