Я хочу добавить 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 в формате вложенного класса.)
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].