JavaFX CheckBoxTreeItem 检测何时选中或取消选中复选框
JavaFX CheckBoxTreeItem detect when checkbox selected or unselected
如何检测 CheckBoxTreeItem
被选中或未被选中?
我是否使用事件处理程序或更改侦听器或其他东西?我要检查什么事件?有没有我可以收听的事件列表,比如 checkboxtreeitem.selection 之类的?
谢谢
你可以去看看javadoc:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/CheckBoxTreeItem.html
你会看到有一个方法叫做'addEventHandler',我想这就是你要找的。
public <E extends Event> void addEventHandler(EventType<E> eventType,
EventHandler<E> eventHandler)
'Registers an event handler to this TreeItem. The TreeItem class allows registration of listeners which will be notified as the number of items changes, their position or if the values themselves change'
例如,您可以通过在创建树的节点时添加侦听器来侦听 CheckBoxTreeItem
的 selectedProperty
:
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
如何检测 CheckBoxTreeItem
被选中或未被选中?
我是否使用事件处理程序或更改侦听器或其他东西?我要检查什么事件?有没有我可以收听的事件列表,比如 checkboxtreeitem.selection 之类的?
谢谢
你可以去看看javadoc:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/CheckBoxTreeItem.html
你会看到有一个方法叫做'addEventHandler',我想这就是你要找的。
public <E extends Event> void addEventHandler(EventType<E> eventType,
EventHandler<E> eventHandler)
'Registers an event handler to this TreeItem. The TreeItem class allows registration of listeners which will be notified as the number of items changes, their position or if the values themselves change'
例如,您可以通过在创建树的节点时添加侦听器来侦听 CheckBoxTreeItem
的 selectedProperty
:
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