如何检测选择或取消选择CheckBoxTreeItem
的时间?
我是否使用事件处理程序或更改侦听器?我要检查什么事?是否有我可以收听的事件列表,如checkboxtreeitem.selection或其他什么?
由于
答案 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类允许注册监听器,这些监听器将在项目数量发生变化,位置或值本身发生变化时得到通知