如何在jfxtable视图中添加按钮edit和delete以及如何在sql中编辑行

t9aqgxwy  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(403)

嗨,伙计们,我有两个问题!我正在使用netbeans8.2和scenebuilder for gui
有一个jfxtableview字段,由sql中的数据组成,我想添加一个列操作,每行包含两个按钮edit和delete
我想在我的sql中编辑行和更新数据,我用它来更新,但我不知道如何实现它们

public static void modifierElement(int id, String nom, int prix, int qnt) {
    try {
        String query = "UPDATE element SET element='" + nom
                + "', prix=" + prix
                + ", quantite=" + qnt
                + " WHERE id=" + id;
        cnx = connecterDB();
        st = cnx.createStatement();
        st.executeUpdate(query);
        System.out.println("Produit bien modifié");

    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }

}

public static Connection connecterDB() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        //System.out.println("Driver oki");
        String url = "jdbc:mysql://127.0.0.1:3306/taxiphone";
        String user = "root";
        String password = "";
        Connection cnx = DriverManager.getConnection(url, user, password);
        //System.out.println("Connexion bien établié");
        return cnx;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

我试着用这个

TableElement.setEditable(true);
    clmID.setCellFactory(TextFieldTableCell.forTableColumn());
    clmELement.setCellFactory(TextFieldTableCell.forTableColumn());
    clmPrix.setCellFactory(TextFieldTableCell.forTableColumn());
    clmQuantite.setCellFactory(TextFieldTableCell.forTableColumn());

它只是一个示例,它没有保存在我的sql数据库中谢谢你们

bt1cpqcv

bt1cpqcv1#

对于“操作”列,可以使用 HBox (包含删除和更新按钮)。对于中的每个按钮 HBox 您可以设置侦听器并相应地执行数据库操作

actionCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person,HBox>, ObservableValue<HBox>>() {

        @Override
        public ObservableValue<HBox> call(CellDataFeatures<Person, HBox> currentRow)
        {
            Button updateButton = new Button("update");
            Button deleteButton = new Button("delete");

            updateButton.setOnAction(e->{
                //Database operation to update record goes here
            });

            deleteButton.setOnAction(e->{
                //Database operation to deleted record goes here                
            });

            ObservableValue<HBox> s = new SimpleObjectProperty<>(new HBox(updateButton,deleteButton));

            return s;
        }
    });

相关问题