【问题标题】:How can I make MiGLayout behave like Wrap Layout?如何使 MiGLayout 表现得像 Wrap Layout?
【发布时间】:2011-08-08 14:52:36
【问题描述】:

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

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");  
    }
}

【问题讨论】:

  • 听起来好像您正试图将方形钉子推入圆孔中。当您想要不同的布局效果时,为什么要使用 MiGLayout?
  • @Hovercraft 引自 miglayout.com:“您将永远不必再切换到另一个布局管理器!”。如果事实证明 MigLayout 无法做到这一点,我将改用 Wrap Layout。但我很想知道这是否可能。
  • 我认为 MiGLayout 支持这一点并将其称为单元格内流:有一个包含多个组件的单元格,它们将像这样流动。
  • @Sauer:我现在试过了,但似乎组件根本没有包裹在单元格内。你能举个例子吗?

标签: java swing layout miglayout


【解决方案1】:
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 2017-06-19
    • 2017-01-26
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多