Отмена редактирования в табличном представлении javafx - PullRequest
0 голосов
/ 04 июня 2018

Я довольно новичок в JavaFX.У меня есть таблица с несколькими столбцами и кнопка обновления в каждой строке.Я пытаюсь установить старое значение в отредактированных ячейках всякий раз, когда я нажимаю кнопку Обновить.Одной из идей является передача старого значения через глобальную переменную для обновления кнопки и ее установки.Я могу получить старое значение. Но как я могу установить это старое значение?вот мой код

 String old=null;

public void initialize(URL arg0, ResourceBundle arg1) {

            colName.setCellValueFactory(new PropertyValueFactory<ModelBrBuilding,String>("BranchName"));
            colName.setCellFactory(TextFieldTableCell.forTableColumn());
            colName.setOnEditCommit(
                    new EventHandler<CellEditEvent<ModelBrBuilding, String>>() {
                        @Override
                        public void handle(CellEditEvent<ModelBrBuilding, String> t) {
                     old= ((ModelBrBuilding) t.getTableView().getItems().get(
                                t.getTablePosition().getRow())
                                ).getBranchName();
                            ((ModelBrBuilding) t.getTableView().getItems().get(
                                    t.getTablePosition().getRow())
                                    ).setBranchName(t.getNewValue());
                        }
                    }
                );
colAction.setCellFactory(col -> {

                Button RefreshButton = new Button("Refresh");                                      
                hbox.getChildren().add(RefreshButton);

                TableCell<ModelBrBuilding, ModelBrBuilding> cell = new TableCell<ModelBrBuilding, ModelBrBuilding>() {
                    @Override
                    //Updating with the number of row 
                    public void updateItem(ModelBrBuilding building, boolean empty) {
                        super.updateItem(building, empty);
                        if (empty) {
                            setGraphic(null);
                        } else {
                            setGraphic(RefreshButton);
                        }
                    }

                };                                                  
                RefreshButton.setOnAction(event->{

                    //here I need to set the old value

                });                        
                return cell ;
            });

Кто-нибудь может дать мне представление, как я могу это сделать?

1 Ответ

0 голосов
/ 04 июня 2018

Наконец-то я нашел свой ответ, который работает

 RefreshButton.setOnAction(event->{             
                    ModelBrBuilding buildin= new ModelBrBuilding();                                             
                    int i=tableBuilding.getSelectionModel().getSelectedIndex();                    
                    buildin.setBranchName(old);

                    tableBuilding.getItems().set(i, buildin);               
                });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...