Отключить некоторые пункты контекстного меню, если в TableView JavaFx выбрано несколько строк
Я новичок в JavaFx. Есть ли способ, которым я могу привязать элемент меню disable property к свойству выбора tableview. Итак, пункт меню получить отключить, если выбрано несколько строк?
Я пытался
mnuItem.disableProperty().bind(tblView.selectionModelProperty().isNull());
Но он отключается как для одиночного, так и для множественного выбора.
Как отключить пункт меню в нескольких строках, выбранных в табличном представлении ?
P.S. я знаю и пытался сделать это со слушателем, как показано ниже
tblView.getSelectionModel().getSelectedIndices().addListener(new ListChangeListener<Integer>() {
@Override
public void onChanged(Change<? extends Integer> change) {
if (change.getList().size() >= 2) {
mnuItem.setDisable(true);
} else {
mnuItem.setDisable(false);
}
}
});
Но, это вызывает исключение " java.яз..RuntimeException: привязанное значение не может быть установлено "
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: A bound value cannot be set.
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:139)
at javafx.scene.control.MenuItem.setDisable(MenuItem.java:380)
at myPkg.MyController$14.onChanged(MyController.java:393)
1 ответ:
Это исключение означает, что вы не можете изменить значение свойства, которое было привязано к другому свойству. Попробуйте удалить привязку
mnuItem
Comments