Я хочу добавить JScrollPane к моей существующей JTextArea, но проблема заключается в том, что он не кажется совместимым с текущим GridBagLayout, который я использую. Я могу просто добавить другие компоненты и расположить их там, где я хочу, как вы можете видеть в коде ниже:

public class note1 extends JPanel {

    public note1() {

        JTextArea noteArea;
        noteArea = new JTextArea(10,20);
        //noteArea.setLineWrap(true);
        noteArea.setEditable(false);
        add(noteArea);

        JScrollPane sp = new JScrollPane(noteArea);
        add(sp);

        JButton reload;
        reload = new JButton("Reload");
        add(reload);

        JButton append;
        append = new JButton("Append");
        add(append);

        JTextField enterField;
        enterField = new JTextField(20);
        add(enterField);        

        setLayout(new GridBagLayout());
        GridBagConstraints gc = new GridBagConstraints();

        // Code in Question /////////////////////////////////////

        //gc.gridx = 1;
        //gc.gridy = 0;
        //gc.fill = GridBagConstraints.NONE;
        //gc.anchor = GridBagConstraints.CENTER;
        //add(noteArea, gc);

        //gc.gridx = 1;
        //gc.gridy = 0;
        //gc.fill = GridBagConstraints.NONE;
        //gc.anchor = GridBagConstraints.CENTER;
        //add(sp,gc);

        ////////////////////////////////////////////////////////

        gc.gridx = 1;
        gc.gridy = 0;
        gc.fill = GridBagConstraints.NONE;
        gc.anchor = GridBagConstraints.WEST;
        add(reload, gc);

        gc.gridx = 2;
        gc.gridy = 1;
        gc.fill = GridBagConstraints.NONE;
        gc.anchor = GridBagConstraints.EAST;
        add(append, gc);

        gc.gridx = 1;
        gc.gridy = 1;
        gc.fill = GridBagConstraints.NONE;
        gc.anchor = GridBagConstraints.CENTER;
        add(enterField, gc);

    }
}

Я могу правильно установить позиции всех компонентов без JScrollPane. Однако проблема проявляется, когда я пытаюсь назначить позицию либо JTextArea, либо JScrollPane после добавления JScrollPane в мой код. ScrollPane затем либо исчезнет, либо будет небольшим по размеру «прямоугольником» с одной или другой стороны. Я могу заставить JTextArea работать с панелью прокрутки, я просто закомментирую код, как у меня выше, и получаю такой беспорядочный результат: * Второе изображение имеет тот же файл, что и расширение Chrome (в раскрывающемся списке нет доступных опций) - Как я могу заставить этих двоих хорошо играть? (Примечание: класс note1 - это просто JPanel, присоединенный к JFrame в формате вложенного класса.)

0
Raznarok