Отобразить данные в таблице TableView

Вы можете попытаться восстановить его из MATE Tweak (mate-tweak), сбросив макет панели:

Откройте вкладку «Панель» и попытайтесь переключить макеты панелей, например,

Также вы можете попытаться убить nm-апплет и запустить его снова с помощью:

killall nm-applet
nohup nm-applet &
1
задан 30 May 2018 в 22:55

1 ответ

Указанный вами подход к отображению работоспособности.

Наиболее возможная ошибка - не подгружен / не существует связанный ClientsEntity. В этом случае появился бы NPE.

Так же, скорее всего PropertyValueFactory не отображает данные (зависит от того, то как вы построили модель).

Вот простой пример:

import javafx.application.Application;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;

public class Main extends Application {

    static ObservableList<OrdersEntity> getTestData() {
        ClientsEntity clientsEntity = new ClientsEntity();
        clientsEntity.idclients = 1;
        clientsEntity.fio = "Иванов Иван Иванович";

        ClientsEntity clientsEntity1 = new ClientsEntity();
        clientsEntity1.idclients = 2;
        clientsEntity1.fio = "Петров Петр Петрович";

        ClientsEntity clientsEntity2 = new ClientsEntity();
        clientsEntity2.idclients = 3;
        clientsEntity2.fio = "Николаев Николай Николаевич";

        OrdersEntity ordersEntity = new OrdersEntity();
        ordersEntity.idorders = 1;
        ordersEntity.clientsByIdclients = clientsEntity;

        OrdersEntity ordersEntity1 = new OrdersEntity();
        ordersEntity1.idorders = 2;
//      ordersEntity1.clientsByIdclients = clientsEntity1;

        OrdersEntity ordersEntity2 = new OrdersEntity();
        ordersEntity2.idorders = 3;
        ordersEntity2.clientsByIdclients = clientsEntity2;

        return FXCollections.observableArrayList(ordersEntity, ordersEntity1, ordersEntity2);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        TableColumn<OrdersEntity, Integer> tcOrdersEntityId = new TableColumn<>("Order ID");
        tcOrdersEntityId.setCellValueFactory(param -> new SimpleObjectProperty<>(param.getValue().idorders));

        TableColumn<OrdersEntity, Integer> tcClientsEntityId = new TableColumn<>("Client ID");
        tcClientsEntityId.setCellValueFactory(param -> new SimpleObjectProperty<>(
                param.getValue().clientsByIdclients == null ? null : param.getValue().clientsByIdclients.idclients
        ));

        TableColumn<OrdersEntity, String> tcClientsEntityFio = new TableColumn<>("Client FIO");
        tcClientsEntityFio.setCellValueFactory(param -> new SimpleStringProperty(
                param.getValue().clientsByIdclients == null ? null : param.getValue().clientsByIdclients.fio
        ));

        TableView<OrdersEntity> tableView = new TableView<>();
        tableView.getColumns().addAll(tcOrdersEntityId, tcClientsEntityId, tcClientsEntityFio);

        tableView.setItems(getTestData());

        primaryStage.setScene(new Scene(tableView, 300, 300));
        primaryStage.show();
    }

    static class OrdersEntity {
        int idorders;
        ClientsEntity clientsByIdclients;
    }

    static class ClientsEntity {
        int idclients;
        String fio;
    }

}
0
ответ дан 6 June 2018 в 11:59

Другие вопросы по тегам:

Похожие вопросы: