BorderLayout 对齐

BorderLayout align

我有一个 JPanel 和一个 BorderLayout。在这个 JPanelCenter 我有另一个 JPanelGridBagLayout.我想在第二个 JPanel 中从左上角垂直添加一些 JLabels。我需要 BorderLayout 因为我需要在 North 区域添加我的标题。

我怎样才能做到这一点?

你真的不需要 GridBagLayout,你可以使用更简单的 BoxLayout:

public class Popup {
  public static void main(String[] args) {
      JFrame window = new JFrame("Title");

      window.add(new JLabel("North", JLabel.CENTER), BorderLayout.NORTH);
      window.add(new JLabel("South", JLabel.CENTER), BorderLayout.SOUTH);
      window.add(new JLabel("West"),  BorderLayout.WEST);
      window.add(new JLabel("East"),  BorderLayout.EAST);

      JPanel centerPanel = new JPanel();
      centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));

      centerPanel.add(new JLabel("Here"));
      centerPanel.add(new JLabel("Here"));
      centerPanel.add(new JLabel("Here"));
      centerPanel.add(new JLabel("Here"));

      window.add(centerPanel, BorderLayout.CENTER);

      window.setSize(600, 400);
      window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      window.setVisible(true);
   }
}