JavaFX布尔绑定和TableView绑定多个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX布尔绑定和TableView绑定多个相关的知识,希望对你有一定的参考价值。

我想将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,它应该工作。我已经纠正过了

以上是关于JavaFX布尔绑定和TableView绑定多个的主要内容,如果未能解决你的问题,请参考以下文章

javafx - 根据布尔值绑定按钮

使用 tableview (JavaFX) 绑定 hashmap

将布尔(Property)绑定到JavaFX中的List操作

如何将行和列添加到 JavaFX 8 TableView

如何在 RxSwift 中将多个数据模型绑定到 TableView

javaFX tableView中嵌入