私は苦労しています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);
}
}
これは次のようになります。
そして、これは私がそれをどのように見せたいかです:
この問題の最善の解決策は何ですか? テキスト フィールドの量は動的に変化します。前もって感謝します。