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绑定多个的主要内容,如果未能解决你的问题,请参考以下文章
使用 tableview (JavaFX) 绑定 hashmap
将布尔(Property)绑定到JavaFX中的List操作