Столбцы не отображаются в TableView - Java - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь написать программу, которая отображает содержимое таблицы в базе данных в графическом интерфейсе javafx, используя TableView.У меня есть общий графический интерфейс, который имеет пустой TableView в нем.После того, как вы решите, какую таблицу вы хотите отобразить в приложении, отправьте имя таблицы в промежуточное программное обеспечение, которое получает все имена столбцов из базы данных и отправляет их bakc в приложение. Затем я перебираю все имена столбцов, генерирую новый TableColumn и добавляюэто к TableView и вызовите метод refresh() TableView.Используя table.getChidlren();, я вижу, что столбцы были успешно добавлены в TableView, однако они вообще не отображаются в графическом интерфейсе JavaFX.Он просто продолжает отображать «Нет столбцов в таблице».Все fx: id и классы контроллеров тоже правильные.

Вот мой код:

public void loadTableContent(){
    try (Socket client = new Socket(InetAddress.getLocalHost(), 667);
         ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
         ObjectInputStream ois = new ObjectInputStream(client.getInputStream())) {

        System.out.println("Sending request");
        oos.writeUTF(databaseTableComboBox.getSelectionModel().getSelectedItem().toString());
        oos.flush();

        System.out.println("reading from sever");
        String[] columnNames =  ois.readUTF().split(";");

        System.out.println("Column names received");

        for (String s: columnNames)
            table.getColumns().add(new TableColumn(s));

        table.refresh();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

1 Ответ

0 голосов
/ 22 сентября 2018

Я понял, в чем проблема.Я добавил TableView в SceneBuilder, однако я вызвал table = new TableView(); в своем коде, который просто стер тот из SceneBuilder.Спасибо всем за помощь.

...