`
huraky
  • 浏览: 31717 次
  • 性别: 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. **视觉反馈**:为了提供更好的用户体验,...

    树形图不能展示

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

    多个javascript 树控件.

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

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

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

    ppt_第三章1

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

    see_You_cac.rar_系统编程

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

    GuiFileManager.zip_Java编程_Java_

    5. **多线程**:如果项目包含实时刷新文件系统内容的功能,可能涉及到多线程。在Java中,可以通过实现Runnable接口或使用Thread类来创建新线程。确保GUI更新与文件操作不在同一线程中进行,以防止阻塞用户界面。 6....

    e3-商品分类选择-阶段性代码

    此外,为了保持用户界面的交互性,前端可能使用AJAX技术进行异步更新,使得用户在切换节点时无需刷新整个页面。 在实际开发中,为了提高代码复用性和可维护性,这些POJO类和相关的业务逻辑通常会被组织到独立的服务...

    YREC.rar_ajax

    Swing包含了一些AWT组件的替代品,例如JButton、JLabel、JTextField、JTextArea、JCheckBox和JRadioButton,以及许多其他高级组件,如JTable、JTree、JTabbedPane等。 "YREC.rar_ajax"这个压缩包可能是一个Java项目...

Global site tag (gtag.js) - Google Analytics