JavaFX布尔绑定和TableView绑定多个

时间:2018-12-10 16:36:45

标签: button javafx binding

我想将Button绑定到两个特定的约束。

其中之一已经实现:

deleteGroupage.disableProperty().bind(Bindings.isEmpty(tableView.getSelectionModel().getSelectedItems()));

这是针对我的tableView的,当未选择任何内容以避免Nullpointer时,您无法按按钮删除某些内容。 但是现在我还得到了一个静态登录变量,该变量告诉用户该用户是否是访客== false或他是否已登录== true。

boolean loggedIn = LoginController.loggedIn;

我如何将两者绑定?用户需要登录并在表中选择一行。

details.setDisable(loggedIn);

这不起作用,因为绑定对于Java而言比此setter更重要。

1 个答案:

答案 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,它应该可以工作。我已更正