用TreeModel:yourJTree.setModel(yourTreeModel);
改变yourTreeModel中的数据就会自动刷新

解决方案 »

  1.   

    怎么会呢?在Swing中,对于JTree,JTable等是把数据和显示以及事件分开的,
    TreeModel只负责数据,不管其他。你一样可以对yourJTree增加事件监听器。// 初始化项目树    DefaultTreeModel treeModel = treeModelConstructor.getModel();
        JTree tree_ProjectsTree = new JTree(treeModel);     //代码1
        //JTree tree_ProjectsTree = new JTree(treeModel);   //代码2
        //ProjectsTree.setModel(treeModel);                 //代码3
        tree_ProjectsTree.addMouseListener(new MouseAdapter() {
          public void mouseReleased(MouseEvent e) {
            tree_ProjectsTree_mouseReleased(e);
          }
          public void mouseClicked(MouseEvent e) {
            int clickCount = e.getClickCount();
            if(clickCount == 2) {
              tree_ProjectsTree_mouseDoubleClicked(e);
            }
          }
        });
    代码2,3和在一块可以代替代码1。
    这是我曾经写过的代码,你看一看,找点感觉吧,不过只是一部分,不能编译的。
      

  2.   

    qljsd(我本善良) :
    你好,我用的与你的差不多!
    我是在Jbuilder 7做的
    tree_ProjectsTree.addMouseListener(new MouseAdapter() {
          public void mouseReleased(MouseEvent e) {
            tree_ProjectsTree_mouseReleased(e);
          }
          public void mouseClicked(MouseEvent e) {
            int clickCount = e.getClickCount();
            if(clickCount == 2) {
              tree_ProjectsTree_mouseDoubleClicked(e);
            }
          }
        });
    这段代码放在, private void jbInit() throws Exception  中,现在根本就不认这事件!
      

  3.   

    你在修改之后,调用JTree的一个刷新方法来刷新可能才行
      

  4.   

    重新设置model的方法有些问题。
      

  5.   

    你肯定是在加事件之后,又重新new JTree了。
    你查查是不是在你上面的代码后又重新new JTree了。
    也许是你在某个方法了new JTree了。
    但又在上面的代码后调用了该方法,致使tree_ProjectsTree指向了另一个新对象。
      

  6.   

    大家好!这个问题我想是JBuilder 7 的问题。我重新放一个之后问题解决!