`
huraky
  • 浏览: 32367 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于JTree刷新问题

阅读更多

     最近研究swing中的JTree时涉及到了刷新问题。很多人提到可以直接重新设置model。即使用:jtree.setModel(newModule)来实现刷新效果。

     但我在使用中发现一个问题:每当动态更新数据以后再重新构造树时会报空指针异常(java.lang.NullPotinerException),由于我是使用XML文件保存树住息,而这时数据已经更新,异常出现在了setModel()这句话了,研究许久才发现,出现这个原因是因为我给树添加了TreeSelectionListener()监听器而在监听器中只对叶子节点进行操作。于是我在重新setModel()之前先移除了监听器,更新后再添加监听器,问题解决!

     初步理解是在setModel()时会执行到此监听器!

分享到:
评论
1 楼 lliiqiang 2010-11-29  
对于JTree鼠标事件处理时要通过具有独立性的事件鼠标事件触发点来获取操作对象而不是JTree选择的。因为鼠标事件属于用户行为事件,而JTree被选择节点的产生也是通过用户行为,于是这两个事件有可能会竞争冲突

相关推荐

    JTree

    尽管 `JTree` 是Java中的组件,但与 `ajax`(异步JavaScript和XML)技术结合使用,可以在不刷新整个页面的情况下更新 `JTree` 的内容。例如,服务器端可以通过 `ajax` 请求获取并更新树的数据,然后客户端使用 ...

    JTree2.0 目录树

    - **方法调用**:如`refresh()`刷新树,`selectNode(nodeId)`选择特定节点,`expandNode(nodeId)`展开节点等。 5. **自定义样式与主题**: - 支持CSS样式自定义,开发者可以通过修改默认样式实现个性化设计。 - ...

    jtable增删改查和jtree连接

    // JTree jTree1=(JTree)e.getSource(); // DefaultMutableTreeNode selectionNode=(DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent(); // String nodeName=selectionNode.toString(); int ...

    Java目录树控件

    如果文件系统发生变化,如新增、删除或移动文件和目录,我们需要提供一个机制来刷新JTree。可以实现一个刷新按钮,当点击时重新加载目录树,或者监听文件系统的变更事件,实时更新JTree。 在提供的"java实现系统...

    java实现系统目录树控件

    JTree tree = new JTree(root); ``` 2. **加载系统目录**: 使用java.io.File类获取系统的目录列表,并遍历目录,为每个目录和文件创建一个新的DefaultMutableTreeNode,然后将其添加到父节点。可以使用`list...

    动态Tree

    例如,添加、删除或更新节点时,需要更新TreeModel并通知JTree进行刷新。 6. **UI展示**:最后,将创建的TreeModel设置到JTree组件中,将其添加到Swing的容器中,如JFrame,完成界面展示。 "treedemo"可能包含了...

    生成可拖拽的树状结构,节点可以通过拖拽移动,插入

    6. **界面刷新**:完成数据模型的修改后,记得调用`treeModel.fireTreeStructureChanged()`来通知所有监听树结构改变的监听器,这样界面才会自动更新显示新的树结构。 7. **视觉反馈**:为了提供更好的用户体验,...

    软著V1 基于Java的远程桌面监控源代码 交底.pdf

    但是,从标题中我们可以推测这是一个关于使用Java编程语言实现的远程桌面监控系统的源代码文档。这个系统可能允许用户监控和管理远程计算机。 【标签】:“java 软件/插件 cs” 【标签解析】: 1. **Java**:这是...

    树形图不能展示

    通常,此类会包含对GUI组件(如JTree in Java Swing 或 JavaFX TreeView)的操作,或者使用自定义绘图方法来实现树形结构的展示。为了修复“不能展示”的问题,我们需要关注以下几个方面: 1. **数据模型**:确保...

    多个javascript 树控件.

    多个javascript 树控件. 1.MzTreeView10 2.传统的JS树 3.经过修改可进行AJAX的梅花雪树 4.jtree 5.无限级可刷新Js树型菜单 6.SELECTTREE 7.xtree

    软著V1 基于Java的远程桌面监控源代码 交底.docx

    该文档标题为“软著V1 基于Java的远程桌面监控源代码 交底.docx”,描述未给出,但根据标题可以推测这是一份关于使用Java编程语言实现远程桌面监控功能的软件源代码。从标签“java 软件/插件 cs”来看,我们可以推断...

    JExplorerTree:纯Java中的简单文件资源管理器组件

    JExplorer树 ...刷新(同步外部更改。) 多文件复制/删除 复制/移动目录(请参阅#1) 删除(使用UNDO) 覆盖方法 JExplorerPanel.log(String) -插入您的日志系统 JExplorerPanel.tr(String) -翻

    java web 浏览器

    - **收藏夹功能**:利用`JTree`类实现收藏夹的管理,包括添加、删除等操作。 - **历史记录**:通过`Vector`对象保存用户的浏览历史,支持前进和后退操作。 ### 二、程序设计流程 根据文档中的描述,项目的开发流程...

    ppt_第三章1

    早期的设计中,节点处理界面的弹框采用inner模式,但在后续改进中,由于关闭按钮被屏蔽的问题,改用了frame组件,使节点处理界面独立于canvas显示。 德塔 ETL的皮肤功能使用bitmap实现,用户可以自由替换。在性能...

    see_You_cac.rar_系统编程

    3. **JTree.java**:JTree用于显示树形结构的数据,比如可能在这里被用来构建一个函数或运算符的层次结构,方便用户选择和应用不同的计算功能。 4. **HJList.java**:这可能是对标准JList类的一个自定义实现,JList...

Global site tag (gtag.js) - Google Analytics