我想将Button绑定到两个特定的约束。
其中一个已经实施:
deleteGroupage.disableProperty().bind(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()));
这是我的tableView,你不能按下按钮删除的东西,当没有选择任何东西以避免Nullpointer。但是现在我还有一个静态登录变量,它告诉用户是否是来宾== false或者他是否登录== true。
boolean loggedIn = LoginController.loggedIn;
我怎么能绑这两个?用户需要登录并在表中选择一行。
details.setDisable(loggedIn);
这不起作用,因为绑定与Java然后这个setter更相关。
你可以使用Bindings.or
喜欢:
deleteGroupage.disableProperty().bind(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()).or(Bindings.createBooleanBinding(() -> !LoginController.loggedIn));
要么:
deleteGroupage.disableProperty().bind(Bindings.or(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()),Bindings.createBooleanBinding(() -> !LoginController.loggedIn)));
或者使用fabian的效率建议:
deleteGroupage.disableProperty().bind(Bindings.createBooleanBinding(() -> tableView.getSelectionModel().getSelectedItems().isEmpty() || !LoginController.loggedIn, tableView.getSelectionModel().getSelectedItems()));
通过使用此解决方案,我假设当您将此绑定到按钮的LoginController.loggedIn
时,信息disaableProperty()
已经存在
编辑:对不起,你必须使用or
而不是and
,它应该工作。我已经纠正过了