So I have a JPanel
that is split into 2 other separate JPanel
s (although this is mostly irrelevant). On the left side I have a GridBagLayout
that I have organized to have a JLabel
at the top, and a JTextArea
below it, however the JTextArea
isn't directly beneath the JLabel
. Instead there is this empty space and I can't figure out why it's there or how to fix it. I'm fairly new to Java in general and GridBagLayout
so I could be missing something, but I've tried several things to get it to work. I have the code for this below along with a visual representation of what it's doing. Any help is appreciated.
CODE
//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);
VISUAL
leftGBC.weightx = 1;
leftGBC.weighty = 1;
Read the section from the Swing tutorial How to use GridBagLayout. The tutorial explains how the weightx/weighty constraints work. Those values indicate how to allocate "extra space" to each cell. So it would appear that both the label and text area getting extra space. I would guess you want 0 for the label.
If this doesn't help (and in the future when you ask a question), post a proper SSCCE that demonstrates the problem.