以下の例では、GridBagLayoutを持つ別のJPanelを含むBoxLayoutを持つJPanelがあります。
垂直接着剤を追加することにより、内側パネルの内容が外側パネルの上部に「接着」されることを期待しています。
しかし、中央に「A」というラベルがあります。GridBagLayoutを削除すると、Aが上部に表示されます。なぜこれが起こるのですか?
import javax.swing.*;
import java.awt.*;
public class Test {
public static void main(String[] args) {
JPanel contentPane = new JPanel();
JFrame frame = new JFrame();
frame.setContentPane(contentPane);
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
JPanel gridBagPanel = new JPanel();
gridBagPanel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.NONE;
gridBagPanel.add(new JLabel("A"), gbc);
contentPane.add(gridBagPanel);
contentPane.add(Box.createVerticalGlue());
frame.setSize(800, 200);
frame.setVisible(true);
}
}