JFXTreeTableView и база данных SQL - PullRequest
0 голосов
/ 16 мая 2018

Как добавить данные из MySQL в javafx, используя JFXTreeTableView У меня есть метод, чтобы добавить это в TableView, я использую этот код: Для My Connexion я использую это

static public ResultSet AllElement() {
        try {
            cnx = connecterDB();
            st = cnx.createStatement();
            rst = st.executeQuery("SELECT * FROM  element");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return rst;
    }

В декларации контроллера

@FXML
private TableView<Object> TableElement;
@FXML
private TableColumn clmID, clmELement, clmPrix, clmQuantite;
ObservableList<Object> data;

в контроллере

public void tableElement() {
        try {
            data = FXCollections.observableArrayList();
            int r = -1;
            ResultSet rst = Tools.ConnexionJM.AllElement();
            while (rst.next()) {
                ObservableList<String> row = FXCollections.observableArrayList();
                for (int i = 1; i <= 4; i++) {
                    row.add("" + rst.getString(i));
                }
                data.add(row);
            }
            TableElement.setItems(data);
        } catch (SQLException ex) {
            Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

метод для столбцов

public void fillTableElement() {
        clmID.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(0).toString());
            }
        });
        clmELement.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(1).toString());
            }
        });
        clmPrix.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(2).toString());
            }
        });
        clmQuantite.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(3).toString());
            }
        });

        tableElement();
    }

Мой вопрос здесь, я хочу с тем же способом работать с My JFXTreeTableView, потому что это слишком простой и понятный код, проблема, которую я имею, я поставил

private JFXTreeTableView<Object> TableViewAP;

это говорит Аргумент типа Object находится за пределами переменной типа S где S - переменная типа: S расширяет RecursiveTreeObject, объявленный в классе JFXTreeTableView, здесь я ничего не могу поделать?

...