Как добавить кнопку Изменить и удалить в представлении JFXTable и Как редактировать строку в SQL - PullRequest
0 голосов
/ 10 мая 2018

привет, ребята, у меня два вопроса!я использую NetBeans 8.2 и SceneBuilder для графического интерфейса

у меня есть поле JFXTableView по данным из SQL, я хочу добавить столбец. Действие содержит две кнопки редактирования и удаления для каждой строки

, и я хочудля редактирования строк и обновления данных в моем 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 спасибо, ребята

1 Ответ

0 голосов
/ 11 мая 2018

Для столбца действий вы можете заполнить каждую ячейку, используя 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;
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...