У меня есть TableView
, в котором есть столбцы с редактируемыми ячейками: TextFieldTableCell
, ChoiceBoxTableCell
и CheckBoxTableCell
.
Они сделаны так:
usernameCol.setCellFactory(TextFieldTableCell.forTableColumn());
usernameCol.setCellValueFactory(new PropertyValueFactory<User,String>("username"));
permissionLevelCol.setCellFactory(ChoiceBoxTableCell.forTableColumn(/*returns a String[]*/usersManager.getPermissionNamesList()));
permissionLevelCol.setCellValueFactory(new PropertyValueFactory<User,String>("permissionLevel"));
giveRefundsCol.setCellFactory(CheckBoxTableCell.forTableColumn(giveRefundsCol));
giveRefundsCol.setCellValueFactory(new PropertyValueFactory<PermissionLevel, Boolean>("giveRefunds"));
Какя могу получить вывод всякий раз, когда пользователь что-то меняет в этих ячейках.Мне нужен какой-то триггер и способ получить новое значение.Ex.печатать новое значение всякий раз, когда оно изменяется
Редактировать:
Моя попытка:
В классе User я помещаю этот метод, который вызывается конструктором:
public void setup(){
username.addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("changed username to: " + newValue);
}
});
password.addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("changed password to: " + newValue);
}
});
permissionLevel.addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("changed permission level to: " + newValue);
}
});
}
К сожалению, это все еще не работает.