- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 javafx 复选框树。单击树项时,我需要选中复选框。我为 TreeView 的选择属性添加了一个监听器。但仅当单击树项时才会触发监听器。单击复选框时不会触发上述监听器。
必需:在 TreeView 中单击树项或复选框时触发的监听器。
代码:
String memberArray = {"subChild1", "subChild2", "childSub1"}
Group groupRoot = new Group();
Scene scene = new Scene(groupRoot, Color.ALICEBLUE);
HBox hBox = new HBox();
hBox.setMaxWidth(fxPanel.getWidth());
final Label royalLabel = new Label("Select a item");
TreeSet<String> prefixMember = new TreeSet<String>();
String tmpName = null;
LinkedHashSet<CheckBoxTreeItem<String>> treeItems = new LinkedHashSet<CheckBoxTreeItem<String>>();
LinkedHashSet<CheckBoxTreeItem<String>> treeSubItems = new LinkedHashSet<CheckBoxTreeItem<String>>();
for (String item : memberArray) {
if (!item.isEmpty()) {
tmpName = item.substring(0, 3);
prefixMember.add(tmpName);
}
}
// Create and empty TreeView
TreeView<String> duckTree = new TreeView<String>();
// Create TreeItems for the Hierarchy of the TreeView
CheckBoxTreeItem<String> root = new CheckBoxTreeItem<String>("Parent");
CheckBoxTreeItem<String> lm1 = new CheckBoxTreeItem<String>("Child1");
CheckBoxTreeItem<String> lm2 = new CheckBoxTreeItem<String>("Child2");
for (String item : prefixMember) {
CheckBoxTreeItem<String> treeItem = new CheckBoxTreeItem<String>(item.toString());
for (String subItem : memberArray) {
if (!subItem.isEmpty() && subItem.substring(0, 3).equals(item)) {
CheckBoxTreeItem<String> treeSubItem = new CheckBoxTreeItem<String>(
subItem.toString());
treeSubItems.add(treeSubItem);
}
}
treeItems.add(treeItem);
treeItem.getChildren().addAll(treeSubItems);
treeSubItems.clear();
}
root.getChildren().addAll(treeItems);
treeItems.clear();
// Create a TreeView using the root TreeItem
TreeView<String> royalTree = new TreeView<String>(root);
royalTree.setCellFactory(CheckBoxTreeCell.<String>forTreeView());
// Set a ChangeListener to handle events that occur with a Treeitem
// is selected
royalTree.getSelectionModel().selectedItemProperty()
.addListener(new ChangeListener<TreeItem<String>>() {
public void changed(
ObservableValue<? extends TreeItem<String>> observableValue,
TreeItem<String> oldItem, TreeItem<String> newItem) {
// Gets fired only on selection of tree item
// Need to get fired on selection of check box too
// Select the respective checkbox on selection of tree item
}
});
hBox.getChildren().add(royalTree);
groupRoot.getChildren().add(hBox);
fxPanel.setScene(scene);
最佳答案
您可以将一个 EventHandler 添加到树中的根项:
rootItem.addEventHandler(CheckBoxTreeItem.checkBoxSelectionChangedEvent(), new EventHandler<TreeModificationEvent<Object>>() {
@Override
public void handle(TreeModificationEvent<Object> event) {
// Your code here.
}
});
关于JavaFX CheckBoxTreeItem 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18996176/
如何检测何时选择或取消选择 CheckBoxTreeItem? 我是否使用事件处理程序或更改监听器或其他东西?我要检查什么事件?是否有我可以收听的事件列表,例如 checkboxtreeitem.se
我有一个 javafx 复选框树。单击树项时,我需要选中复选框。我为 TreeView 的选择属性添加了一个监听器。但仅当单击树项时才会触发监听器。单击复选框时不会触发上述监听器。 必需:在 Tree
我正在尝试开发一个文件复制应用程序。我已经使用文件系统上的当前目录创建了一个复选框树项。 但是当我选择第一个节点(c:/目录)时,需要很长时间。如何轻松快速地选择所有目录? 这是我的第一个 FXML
我正在尝试使用JavaFX,并尝试在树表中添加一个复选框项目,但看起来它只支持简单的树项目。 我的代码是Oracle's TreeTableView Example的修改版本: public cla
假设我有一个类似于示例中的 treeView。当我选中一片叶子的复选框(例如 a1Item、a2Item)时,控制台中只会打印一行。当我选择一个 parentItem(例如 rootItem、aIte
我有一种情况,正在显示一个 TreeView,有两个级别的条目(父级和子级),如下所示: root (invisible) |_ parent item 1 |_ child item 1-1
我有一个奇怪的复选框选择问题,节点在 JavaFX 8 TreeView 中使用带有自定义 CheckBoxTreeCell 的 CheckBoxTreeItems 具有子项。 问题是必须单击两次而不
我是一名优秀的程序员,十分优秀!