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

时间:2016-07-12 12:12:08

标签: java javafx javafx-2 javafx-8

如何检测选择或取消选择CheckBoxTreeItem的时间?

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

由于

2 个答案:

答案 0 :(得分:5)

例如,您可以在创建树的节点时通过添加侦听器来侦听CheckBoxTreeItem 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); }

Item8 selection state: true
Item8 selection state: false

此树打印例如:

(uint8_t*)stream.buffer

答案 1 :(得分:2)

你可以去看看javadoc:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/CheckBoxTreeItem.html

您会看到有一种名为&#39; addEventHandler&#39;的方法,我认为这是您正在寻找的内容。

public <E extends Event> void addEventHandler(EventType<E> eventType,
                                          EventHandler<E> eventHandler)

&#39;向此TreeItem注册事件处理程序。 TreeItem类允许注册监听器,这些监听器将在项目数量发生变化,位置或值本身发生变化时得到通知