首页 > 解决方案 > JFXTreeTableView 和数据库 SQL

问题描述

如何使用 JFXTreeTableView 在 javafx 中从 mysql 添加数据?我有一种方法可以在 TableView 中添加它我使用这个代码。

对于我的连接,我使用:

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();
    }

我的问题:我希望以同样的方式使用我的 JFXTreeTableView,因为它太简单和清晰的代码我遇到的问题是我提出的问题

private JFXTreeTableView<Object> TableViewAP;

它说

类型参数对象不在类型变量 S 的范围内

其中S是类型变量;S extends在这里RecursiveTreeObject<S>在课堂上声明JFXTreeTableView我无能为力吗?

标签: javamysqlsqljavafxjfoenix

解决方案


推荐阅读