尝试在我的tableview中选择一行数据进行编辑

时间:2017-04-28 07:16:04

标签: java mysql tableview scenebuilder

我希望能够选择任何行,专门选择1行并编辑其数据。

数据位于SQL表中。

我正在使用tableview和scenebuilder 2。

问题:我选择的行不会使用新字段进行更新。不确定如果它识别出选择。

代码发布在

下面

对不起,如果我不完全清楚,我将很乐意在必要时进一步解释

Connection c;
data = FXCollections.observableArrayList();

 for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
                //We are using non property style for making dynamic table
                final int j = i;
                TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i + 1));
                col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                        return new SimpleStringProperty(param.getValue().get(j).toString());
                    }
                });

                tableview.getColumns().addAll(col);
                System.out.println("Column [" + i + "] ");
            }

            /********************************
             * Data added to ObservableList *
             ********************************/
            while (rs.next()) {
                //Iterate Row
                ObservableList<String> row = FXCollections.observableArrayList();
                for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                    //Iterate Column
                    row.add(rs.getString(i));
                }
                System.out.println("Row [1] added " + row);
                data.add(row);

            }

            //FINALLY ADDED TO TableView
            tableview.setItems(data);
            c.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Error on Building Data");
        }

////选择行和编辑

            String a =(String)tableview.getSelectionModel().getSelectedCells().toString();

            String query = "UPDATE Frontdesk SET CustomerName = ? , Zip = ? , Make =? , Model=? , PhoneNumber =? WHERE CustomerName =? ";
            PreparedStatement preparedStmt = c.prepareStatement(query);
            preparedStmt.setString(1, txtCus);
            preparedStmt.setString(2, txtzi);
            preparedStmt.setString(3, txtMod);
            preparedStmt.setString(4, txtMak);
            preparedStmt.setString(5, txtPun);
            preparedStmt.setString(6, a);

            preparedStmt.executeUpdate();

这是该应用程序的屏幕截图:

This is a screenshot of the application

0 个答案:

没有答案