私は MigLayout を使用しており、BoxLayout の「接着剤」を使用して、2 つのコンポーネント間の領域を柔軟に埋める目に見えないスペースを作成するような効果を作成したいと考えています。チュートリアルから:
MigLayout では、ギャップを使用してコンポーネント間にスペースを作成することを理解しています。でリジッドな空間を作ることができます"gap 10"
。MiG Layout Cheatsheet には、push
「そのギャップを「貪欲」にして残りのスペースを取る」ためにギャップのあるバインドされたサイズに追加できると書かれていますが (例: "gap rel:push"
)、次のコードでは機能しないようです。試してみました:
JFrame frame = new JFrame("Test");
JPanel panel = new JPanel(new MigLayout());
JLabel label1 = new JLabel("Testing");
label1.setBorder(BorderFactory.createLineBorder(Color.black)); //Border to clearly show JLabel boundaries
panel.add(label1, "");
JLabel label2 = new JLabel("Testing Once Again");
label2.setBorder(BorderFactory.createLineBorder(Color.black)); //Border to clearly show JLabel boundaries
panel.add(label2, "gap rel:push");
frame.setContentPane(panel);
frame.pack();
frame.setMinimumSize(new Dimension(400, 100));
frame.setPreferredSize(new Dimension(400, 100));
frame.setVisible(true);
次のようなウィンドウが表示されます。
"gap rel:push"
パラメータが上の図の水平方向の接着剤のように機能し、右側の JLabel がウィンドウの右端まで押し出されることを期待していますが、そうではありません。
MigLayout を使用して BoxLayout の接着剤と同じ効果を得るにはどうすればよいですか? パラメータを誤用してい"gap"
ますか、それともそれを達成する他の方法がありますか?
また、与えられた例ではドッキングを使用できることを認識していますが、作成中のより複雑なレイアウトでは機能しないため、それなしでは答えが欲しいです。