0

私は苦労していますMIGLayout-基本的には知っていますが、今日問題が発生しました。

状況を単純化するには:

最初と3番目の行に固定されていない量のオブジェクト(JTextFieldコンポーネントなど)があるように、3つの行が必要です。最初の行の最初のテキスト フィールドの幅は、3 行目の最初のテキスト フィールドの幅と同じにする必要があります。

それらのほとんどを含む行の最後のテキスト フィールドは、残りのフレーム サイズに対して大きくなるはずです。

これらの 2 つの行は で区別する必要がJSeparatorあり、これもフレームの長さである必要があります。

MigLayout を使用してパネル全体にセパレーターを描画する方法は既に見ましたが、フィールドを正確に上下に配置する必要があるため、うまくいきません。

これは私のコードです:

public class Main extends JFrame {
    public static void main(String[] args) {
            JFrame.setDefaultLookAndFeelDecorated(true);
            new Main();
    }

    public Main() {
            setLayout(new MigLayout(new LC()));
            setPreferredSize(new Dimension(800, 300));
            CC cc = new CC().growX();
            CC wcc = new CC().growX().wrap();
            add(new JTextField("Area 1"), cc);
            add(new JTextField("Area 2"), cc);
            add(new JTextField("Area 3"), wcc);
            add(new JSeparator(), new CC().spanX().pushX().growX().wrap());
            add(new JTextField("Longer Area 1"), cc);
            add(new JTextField("Longer Area 2"), cc);

            setDefaultCloseOperation(EXIT_ON_CLOSE);
            pack();
            setVisible(true);
    }
}

これは次のようになります。

ここに画像の説明を入力

そして、これは私がそれをどのように見せたいかです:

ここに画像の説明を入力

この問題の最善の解決策は何ですか? テキスト フィールドの量は動的に変化します。前もって感謝します。

4

1 に答える 1