我'm new to JavaFx. Is there a way that I can bind an menu item'的 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.lang.RuntimeException : A bound value cannot be set"
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
的绑定