我想将Button绑定到两个特定的约束。
其中之一已经实现:
deleteGroupage.disableProperty().bind(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()));
这是针对我的tableView的,当未选择任何内容以避免Nullpointer时,您无法按按钮删除某些内容。 但是现在我还得到了一个静态登录变量,该变量告诉用户该用户是否是访客== false或他是否已登录== true。
boolean loggedIn = LoginController.loggedIn;
我如何将两者绑定?用户需要登录并在表中选择一行。
details.setDisable(loggedIn);
这不起作用,因为绑定对于Java而言比此setter更重要。
答案 0 :(得分:0)
您可以使用readLines
喜欢:
Bindings.or
或:
deleteGroupage.disableProperty().bind(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()).or(Bindings.createBooleanBinding(() -> !LoginController.loggedIn));
或使用 fabian 的效率建议:
deleteGroupage.disableProperty().bind(Bindings.or(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()),Bindings.createBooleanBinding(() -> !LoginController.loggedIn)));
通过使用此解决方案,我假设将信息deleteGroupage.disableProperty().bind(Bindings.createBooleanBinding(() -> tableView.getSelectionModel().getSelectedItems().isEmpty() || !LoginController.loggedIn, tableView.getSelectionModel().getSelectedItems()));
绑定到按钮的LoginController.loggedIn
编辑:抱歉,您必须使用disaableProperty()
而不是or
,它应该可以工作。我已更正