JFXTreeTableView和数据库SQL

时间:2018-05-16 00:00:19

标签: java mysql sql javafx jfoenix

如何使用JFXTreeTableView在javafx中添加来自mysql的数据我有一个方法在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);
        }
    }

对于collums的方法

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;

它说 type参数Object不在类型变量S的范围内   其中S是一个类型变量:     S扩展了在类JFXTreeTableView中声明的RecursiveTreeObject,在这里我无能为力吗?

0 个答案:

没有答案