左側にいくつかのテキスト項目があり、右側にボタンがあるレイアウトを作成しようとしています。思い通りのテキストアイテムを手に入れましたが、ボタンを右に揃えることができません。
私は次のようにボタンを作成しています:
SpringLayout layout = new SpringLayout();
JPanel p2 = new JPanel(layout);
// set panel size very large so it fills its own parent
p2.setMaximumSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));
p2.setBackground(new Color(0xffd0d0));
p2.setBorder(BorderFactory.createLineBorder(new Color(0)));
// Add some text items; omitted for clarity
...
// Add a button in the lower-right corner
JButton btn = new JButton(refreshAction);
p2.add(btn);
layout.putConstraint(SpringLayout.EAST, btn,
Spring.constant(0),
SpringLayout.EAST, p2);
layout.putConstraint(SpringLayout.SOUTH, btn,
Spring.constant(0),
SpringLayout.SOUTH, p2);
これにより、ボタンの東端と南端がコンテナの東端と南端に揃うと思いましたが、実際には発生していません。ボタンの端が実際のサイズではなく、コンテナの推奨サイズに揃えられているようです。
もう1つのデータポイント: ラベルの値を設定すると、ボタンが右にジャンプし、追加したばかりのテキストの最後に位置合わせされます。実際のサイズが変更されていなくても、コンテナの推奨サイズが明らかに増加し、それに応じてボタンの位置が変更されました。