java - JTree - Java Swing中仅处理树会扩展但不会扩展树选择
问题描述
我正在为我的应用程序进行延迟加载。我希望一个节点仅加载用户单击它的图标。关键是我不知道该节点是否有子节点。我的临时解决方案是定义一个有子节点的节点,然后根据选择事件加载它们,我不使用树将扩展事件以进行延迟加载。我有什么方法可以实现 treeWillExpand 事件。您可以在TreeWillExpanListener和TreeExpandEventDemo2中引用。
解决方案
// Have a tree with some unexpanded root items
// When an item is expanded, add some children
tree.addListener(new Tree.ExpandListener() {
public void nodeExpand(ExpandEvent event) {
// No children for the first node
if (!hasChildren(event.getItemId())) {
tree.setChildrenAllowed(event.getItemId(), false);
} else {
// Add a few new child nodes to the expanded node
tree.addItem(childId);
tree.setParent(childId, event.getItemId());
}
}
});
您可以实现 hasChildren 以根据正在扩展的树节点找到子节点,然后找到子节点并添加
推荐阅读
- c++ - 如何组合同一物体手部扫描的多个点云
- .htaccess - .htaccess 将带有参数的某些 url 重定向到 root
- android - 如何在 Android Eclipse 上从另一个布局显示?
- mysql - 加入多个查询结果表
- bash - 如何管理 jq 返回布尔值以 bash 以供将来继续
- angular6 - Angular 6 SSR 错误,而 - !window.ace 未定义。如何为 Ace 编辑器制作 SSR 包装器?
- java - 如何在 Iterable 的 event_date 字段中获取具有最高事件日期的对象的唯一列表
收藏 - sql - 将不同的 ID 拼接成一个唯一 ID
- nginx - 如何配置条件 nginx 代理通行证
- macos - 如何避免无法通过代理建立隧道。代理在 MAC OS 中返回“HTTP/1.1 407 AuthorizedOnly”