Java TreeModel的自定义实现在调用TreeNodeInserted后拒绝重新绘制

Java TreeModel的自定义实现在调用TreeNodeInserted后拒绝重新绘制,java,swing,jtree,Java,Swing,Jtree,我正在为JTree使用自定义树模型。当我在TreeModel中插入一个新节点,然后在所有TreeModelListener上调用TreeNodeInserted(TreeModelEvent)时,我遇到了一个问题 我认为问题在于JTree.TreeModelHandler没有TreeNodeInserted(e)的实现,只有treeStructureChanged(e) 显然,对我来说,能够插入比改变完整的树结构要好得多 有解决办法吗?(我不能使用DefaultTreeModel)更多详细信息会

我正在为JTree使用自定义树模型。当我在TreeModel中插入一个新节点,然后在所有TreeModelListener上调用TreeNodeInserted(TreeModelEvent)时,我遇到了一个问题

我认为问题在于JTree.TreeModelHandler没有TreeNodeInserted(e)的实现,只有treeStructureChanged(e)

显然,对我来说,能够插入比改变完整的树结构要好得多


有解决办法吗?(我不能使用DefaultTreeModel)

更多详细信息会有所帮助。但我做过类似的事情,没有任何问题。在我的例子中,MyTreeModel实现了TreeModel,fireTreeInserts函数就是其中的一部分

该函数如下所示(清除了特定于应用程序的代码):

public void fireTreeInsert(树路径,对象子对象){
对象[]子对象={child};
int index=this.getIndexOfChild(path.getLastPathComponent(),子级);
int[]标记={index};
TreeModelEvent e=新的TreeModelEvent(此、路径、标记、子项);
EventListener[]listeners=mTreeModel.getListeners(TreeModelListener.class);
for(int ii=0;ii
   public void fireTreeInsert(TreePath path, Object child) {
      Object[] children = {child};
      int index = this.getIndexOfChild(path.getLastPathComponent(), child);
      int[] indicies = {index};
      TreeModelEvent e = new TreeModelEvent(this, path, indicies, children);
      EventListener[] listeners = mTreeModel.getListeners(TreeModelListener.class);
      for (int ii = 0; ii < listeners.length; ii++) {
         ((TreeModelListener)listeners[ii]).treeNodesInserted(e);
      }
   }