2016-09-24 6 views
0

У меня есть JPanel, который разделен на 2 других отдельных JPanel (хотя это в основном не имеет значения). С левой стороны у меня есть GridBagLayout, который я организовал, чтобы иметь JLabel наверху, и JTextArea под ним, однако JTextArea не непосредственно под JLabel. Вместо этого есть это пустое пространство, и я не могу понять, почему он там или как его исправить. Я довольно новичок в Java в целом и GridBagLayout, поэтому мне что-то не хватает, но я попробовал несколько вещей, чтобы заставить его работать. У меня есть код для этого ниже, а также визуальное представление того, что он делает. Любая помощь приветствуется.Почему у этого 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); 

VISUAL

enter image description here

ответ

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

Прочитайте раздел из свинг учебника How to use GridBagLayout. В учебнике объясняется, как работают весовые/весовые ограничения. Эти значения указывают, как распределить «дополнительное пространство» для каждой ячейки. Таким образом, казалось бы, как ярлыки, так и область текста получают дополнительное пространство. Я бы предположил, что вы хотите 0 для ярлыка.

Если это не поможет (и в будущем, когда вы зададите вопрос), разместите надлежащий номер SSCCE, который демонстрирует проблему.

+0

Да, это сработало! Спасибо за помощь! – Ryan

Смежные вопросы