Как поместить JTextArea рядом с другой JTextArea? - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь поместить один JTextArea рядом с другим JTextArea в графическом интерфейсе

Я пишу графический интерфейс для базы данных и хотел поместить данные из каждого столбца в другую JTextArea.Это сделает мой графический интерфейс намного лучше и облегчит просмотр данных.Я уже пытался добавить JTextAreas к JPanel, но, похоже, это не работает.

Это то, что я пробовал до сих пор:

public class GUIDisplayBooks extends JFrame{

    JPanel panel = new JPanel();
    JTextArea textAreaIsbn = new JTextArea();
    JTextArea textAreaTitle = new JTextArea();
    JTextArea textAreaSurname = new JTextArea();
    JTextArea textAreaForename = new JTextArea();
    JTextArea textAreaCategory = new JTextArea();
    JScrollPane scrollPane = new JScrollPane(panel);

    GUIDisplayBooks(ArrayList<Book> books)
    {
        this.add(panel);
        this.setSize(600,200);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    for(Book book : books){            
        textAreaIsbn.append(book.getIsbn() + "\n");
        textAreaTitle.append(book.getTitle() + "\n");
        textAreaSurname.append(book.getSurname() + "\n");
        textAreaForename.append(book.getForename() + "\n");
        textAreaCategory.append(book.getCategory() + "\n");
    }
        panel.add(textAreaIsbn);
        panel.add(textAreaTitle);
        panel.add(textAreaSurname);
        panel.add(textAreaForename);
        panel.add(textAreaCategory);
        add(scrollPane);

    }

}

Я продолжаю получать пустое окно GUI.Может быть, это что-то действительно очевидное, любая помощь оценена

Ответы [ 2 ]

1 голос
/ 06 июня 2019

У компонентов Swing может быть только один родитель:

JScrollPane scrollPane = new JScrollPane(panel);

Я в основном то же самое из этого:

JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(panel);

Затем вы добавляете тот же panel к вашему JFrame:

this.add(panel);

, который удаляет его из JScrollPane, а затем вы добавляете пустой JScrollPane к JFrame:

add(scrollPane);

Итак, удаляя эту строку,должна заставить вашу программу работать:

this.add(panel);
0 голосов
/ 06 июня 2019

Вы можете использовать макет. Существуют различные реализации, вы можете посмотреть здесь .

A FlowLayout с горизонтальной ориентацией должен это делать.

...