为什么这个 GridBagLayout 有未使用的空 space 我怎样才能摆脱它?

Why does this GridBagLayout have unused empty space and how can I get rid of it?

所以我有一个 JPanel,它被分成另外 2 个单独的 JPanel(尽管这在很大程度上是无关紧要的)。在左侧,我有一个 GridBagLayout,我组织它在顶部有一个 JLabel,在它下面有一个 JTextArea,但是 JTextArea 不是 直接JLabel下面。取而代之的是这个空的 space,我不知道为什么它在那里或如何修复它。总的来说,我对 Java 和 GridBagLayout 还很陌生,所以我可能会遗漏一些东西,但我已经尝试了几种方法来让它发挥作用。我有下面的代码以及它正在做什么的可视化表示。感谢任何帮助。

代码

    //LEFT SIDE
    GridBagConstraints leftGBC = new GridBagConstraints();
    JPanel leftSide = new JPanel(new GridBagLayout());
    leftSide.setBorder(new EmptyBorder(inset, inset, inset, inset));
    Font titleFont = bb5.comfortaa.deriveFont(Font.PLAIN, 16f);
    leftGBC.gridx = 0;
    leftGBC.gridy = 0;
    leftGBC.weightx = 1;
    leftGBC.weighty = 1;
    leftGBC.anchor = GridBagConstraints.NORTH;

    JLabel leftTitle = new JLabel("Objective");
    leftTitle.setFont(titleFont);
    leftTitle.setBorder(BorderFactory.createMatteBorder(0, 0, 2, 0, Color.BLACK));
    leftGBC.fill = GridBagConstraints.HORIZONTAL;
    leftSide.add(leftTitle, leftGBC);
    leftGBC.gridy = 1;
    leftGBC.anchor = GridBagConstraints.NORTH;
    JTextArea objectiveArea = new JTextArea(objectiveText);
    objectiveArea.setBackground(leftTitle.getBackground());
    objectiveArea.setEditable(false);
    objectiveArea.setFocusable(false);
    objectiveArea.setFont(bb5.samsung1.deriveFont(16f));
    objectiveArea.setLineWrap(true);
    objectiveArea.setWrapStyleWord(true);
    leftSide.add(objectiveArea, leftGBC);

视觉

leftGBC.weightx = 1;
leftGBC.weighty = 1;

阅读 Swing 教程中的部分 How to use GridBagLayout。本教程解释了 weightx/weighty 约束的工作原理。这些值指示如何将 "extra space" 分配给每个单元格。所以看起来标签和文本区域都得到了额外的 space。我猜你想要 0 作为标签。

如果这没有帮助(以及将来您提出问题时),post 一个适当的 SSCCE 来证明问题。