JavaFX CheckBoxTreeItem检测何时选中或取消选中复选框

use*_*186 1 java javafx javafx-2 javafx-8

如何检测何时CheckBoxTreeItem选择或未选择?

我是否使用事件处理程序或更改侦听器?我要检查什么事?是否有我可以收听的事件列表,如checkboxtreeitem.selection或其他什么?

谢谢

DVa*_*rga 5

例如,您可以听selectedPropertyCheckBoxTreeItem,当你创建了树的节点通过添加监听器:

CheckBoxTreeItem<String> rootItem = new CheckBoxTreeItem<String>("Root");
rootItem.setExpanded(true);

final TreeView<String> tree = new TreeView<String>(rootItem);
tree.setEditable(true);

tree.setCellFactory(CheckBoxTreeCell.<String> forTreeView());

for (int i = 0; i < 8; i++) {
    CheckBoxTreeItem<String> checkBoxTreeItem = new CheckBoxTreeItem<String>("Item" + (i + 1));

    checkBoxTreeItem.selectedProperty().addListener((obs, oldVal, newVal) -> {
        System.out.println(checkBoxTreeItem.getValue() + " selection state: " + newVal);
    });

    rootItem.getChildren().add(checkBoxTreeItem);
}
Run Code Online (Sandbox Code Playgroud)

此树打印例如:

Item8 selection state: true
Item8 selection state: false
Run Code Online (Sandbox Code Playgroud)