我正在JavaFx中创建一个应用程序。现在我有两个彼此相邻的表格视图:
------------------------------------------------------------------------------
| TableView 1 | TableView 2 |
| | |
| | Entry 1 |
| | Entry 2 |
| | Entry 3 |
| | Entry ... |
| | Entry N |
------------------------------------------------------------------------------
我想将TableView 2中的项目复制到TableView 1,但同时,需要禁用从TableView 2复制的条目(使用setDisable或类似的东西禁用该行)。我知道如何将项目从一个tableview复制到另一个tableview。问题是当一个或多个条目被复制到TableView 1时,我不知道如何禁用多行。 我尝试使用RowFactory,如下所示:
productsInTransaction.setRowFactory(tv -> {
TableRow<Product> row = new TableRow<>();
row.disableProperty().bind(???);
return row;
});
非常感谢任何帮助!
答案 0 :(得分:1)
我不太确定您想要的逻辑,但如果您的行工厂附加到表1,而您在表2中存在该项时禁用该行,请执行:< / p>
row.disableProperty().bind(Bindings.createBooleanBinding(() ->
table2.getItems().contains(row.getItem()), table2.getItems(), row.itemProperty()));