求 java 刷新 JScrollPane中jtree树状图的方法

我做的这个小系统,用树状图显示用户列表。
在进行新建用户操作,点击“确定”后,希望该树状图自动刷新一下。
不过不晓得在actionPerformed方法中如何操作……
望各位大神给个思路。
代码蛮多,如有需要跟帖我会补充,大概的路线就是
BorderLayout——JScrollPane——JTree——DefaultTreeModel——TreeNode——DefaultMutableTreeNode
更新的是JScrollPane 具体remove哪个repaint哪个 怎么个顺序啥的,帮帮俺吧

  java 中actionPerformed的方法可以刷新jtree树状图的,具体做法是在actionPerformed的方法尾部加上JSPcrollPanel.updateUI();

代码如下:

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
 
public class TreeDemo {
    public static void main(String[] args) {
 
        // åˆ›å»ºæ²¡æœ‰çˆ¶èŠ‚点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。
        // public DefaultMutableTreeNode(Object userObject)
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("软件部");
        node1.add(new DefaultMutableTreeNode(new User("小花")));
        node1.add(new DefaultMutableTreeNode(new User("小虎")));
        node1.add(new DefaultMutableTreeNode(new User("小龙")));
 
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("销售部");
        node2.add(new DefaultMutableTreeNode(new User("小叶")));
        node2.add(new DefaultMutableTreeNode(new User("小雯")));
        node2.add(new DefaultMutableTreeNode(new User("小夏")));
 
        DefaultMutableTreeNode top = new DefaultMutableTreeNode("职员管理");
 
        top.add(new DefaultMutableTreeNode(new User("总经理")));
        top.add(node1);
        top.add(node2);
        final JTree tree = new JTree(top);
        JFrame f = new JFrame("JTreeDemo");
        f.add(tree);
        f.setSize(300, 300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // æ·»åŠ é€‰æ‹©äº‹ä»¶
        tree.addTreeSelectionListener(new TreeSelectionListener() {
 
            @Override
            public void valueChanged(TreeSelectionEvent e) {
                DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
                        .getLastSelectedPathComponent();
 
                if (node == null)
                    return;
 
                Object object = node.getUserObject();
                if (node.isLeaf()) {
                    User user = (User) object;
                    System.out.println("你选择了:" + user.toString());
                }
 
            }
        });
    }
}
 
class User {
    private String name;
 
    public User(String n) {
        name = n;
    }
 
    // é‡ç‚¹åœ¨toString,节点的显示文本就是toString
    public String toString() {
        return name;
    }
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-29
刷他干嘛啊,改变model界面自用重画,如果是在有必要repaint就可以。
第2个回答  2011-03-29
在actionPerformed的方法尾部加上JSPcrollPanel.updateUI();
即可,你试一下

参考资料:;

本回答被网友采纳
相似回答