MigLayoutを使用してレイアウト要件を簡単に満たす方法を示すために少し遊んでいる間、私は次の結果に驚いていました。
MigLayout layout = new MigLayout("wrap 3, debug");
JComponent content = new JPanel(layout);
content.add(new JLabel("First:"));
content.add(new JScrollPane(new JTextArea(10, 20)), "skip, spany");
content.add(new JLabel("Second"));
content.add(new JTextField(10));
content.add(new JLabel("third"));
content.add(new JTextField(10));
//content.add(new JLabel());
レイアウトのアイデアは非常に単純です。
- 3列
- すべての行にまたがる最後の列
- 最初の2列はラベル/コンポーネントのペアの束
予期しないことは、最初の2列の最後の行が利用可能なすべての垂直方向のスペースを占めるため、最後のペアが中央に配置されることです(上揃えはオプションではありません。互いにベースラインを揃える必要があるためです)。
上記の最後の行のコメントを外す(事実上目に見えないダミーを追加する)と、予想されるレイアウトが表示されますが、本番コードに入るべきではないハックが表示されます
問題は、ハッキングせずに期待されるレイアウトを実現する方法です。