Отключить некоторые пункты контекстного меню, если в 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)
677   1  

1 ответ:

Это исключение означает, что вы не можете изменить значение свойства, которое было привязано к другому свойству. Попробуйте удалить привязку mnuItem

Comments

    Ничего не найдено.