关于JTree刷新问题

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

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

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

你可能感兴趣的:(xml,swing)