以下是近的我想要什么,并且我期望:

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;

public class MigBug extends JFrame {

    public static void main(String args[]) {
        MigBug migbug = new MigBug();
        migbug.pack();
        migbug.setVisible(true);
    }

    public MigBug() {
        JPanel content = new JPanel();
        content.setLayout(new MigLayout("fill, debug"));

        content.add(new JLabel("Label 1"));
        content.add(new JComboBox());

        content.add(new JLabel("Label 2"));
        content.add(new JTextField(25), "growx, wrap");

        content.add(new JLabel("BIG"), "span, w :400:, h :200:, growy");

        setContentPane(content);
    }
}

然而,如果我提出以下变化:

content.add(new JLabel("BIG"), "span, w :400:, h :200:, grow");

ie。变化的跨区分增长,在x以及y标1的细胞生长在x,即使它不应该。

没有人知道一种方式我可以获得这一轮?

有帮助吗?

解决方案

找到一个解决办法,虽然不完全令人满意。根据 这个论坛后这个论坛后,MigLayout开关计算分大小,计算所列大小在一个跨度的参与。替换"填满"与"小姑娘"的约束的布局,然后加入列约束的"成长"为每一列应该允许增长似乎解决它。

工作code:

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;

public class MigBug extends JFrame {

    public static void main(String args[]) {
        MigBug migbug = new MigBug();
        migbug.pack();
        migbug.setVisible(true);
    }

    public MigBug() {
        JPanel content = new JPanel();
        content.setLayout(new MigLayout("filly, debug", "[][grow][][grow]"));

        content.add(new JLabel("Label 1"));
        content.add(new JComboBox());

        content.add(new JLabel("Label 2"));
        content.add(new JTextField(25), "growx, wrap");

        content.add(new JLabel("BIG"), "span, w :400:, h :200:, grow");

        setContentPane(content);
    }
}

其他提示

您也可以尝试我的 MatrixLayout 布局管理器作为替代。这个概念是类似米格布局 - 表为主。这不是那么强大,但它似乎(对我来说,反正)更易于使用(以极大的力量来自伟大的复杂性)。但是,说实话,这可能只是因为我还没有试过不难理解米格布局。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top