回 帖 发 新 帖 刷新版面

主题:关于JTree事件响应的问题,急!!!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

public class TreeDemo2
{
    public TreeDemo2()
    {
        JFrame f = new JFrame("TreeDemo");
        Container contentPane = f.getContentPane();
        
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("档案总管");
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("文件夹");
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的电脑");
        DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("我的最爱");
        DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Readme");
        root.add(node1);
        root.add(node2);
        root.add(node3);
        root.add(node4);
        
        DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("公司文件");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("个人信件");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("私人文件");
        node1.add(leafnode);
        
        leafnode = new DefaultMutableTreeNode("本地磁盘(C:)");
        node2.add(leafnode);
        leafnode = new DefaultMutableTreeNode("本地磁盘(D:)");
        node2.add(leafnode);
        leafnode = new DefaultMutableTreeNode("本地磁盘(E:)");
        node2.add(leafnode);
        
        DefaultMutableTreeNode node31 = new DefaultMutableTreeNode("网站列表");
        node3.add(node31);
        
        leafnode = new DefaultMutableTreeNode("sina");
        node31.add(leafnode);
        leafnode = new DefaultMutableTreeNode("yahoo");
        node31.add(leafnode);
        leafnode = new DefaultMutableTreeNode("163");
        node31.add(leafnode);
        
        JTree tree = new JTree(root);
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(tree);
        
        contentPane.add(scrollPane);
        f.pack();
        f.setVisible(true);
        
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }

    public static void main(String args[]) {
    
        new TreeDemo2();
    }
}
请问应该加一个怎么样得事件响应,当我点击不同的叶子节点时显示相应的名称。
即当点击“私人信件”这个节点时,输出的是:私人信件

回复列表 (共2个回复)

沙发

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.*;

public class TreeDemo2 implements TreeSelectionListener
{
    private DefaultMutableTreeNode root = new DefaultMutableTreeNode("档案总管");
    private JTree tree = new JTree(root);
    
    public TreeDemo2()
    {
        JFrame f = new JFrame("TreeDemo");
        Container contentPane = f.getContentPane();
        
        
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("文件夹");
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("我的电脑");
        DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("我的最爱");
        DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("Readme");
        root.add(node1);
        root.add(node2);
        root.add(node3);
        root.add(node4);
        
        DefaultMutableTreeNode leafnode = new DefaultMutableTreeNode("公司文件");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("个人信件");
        node1.add(leafnode);
        leafnode = new DefaultMutableTreeNode("私人文件");
        node1.add(leafnode);
        
        leafnode = new DefaultMutableTreeNode("本地磁盘(C:)");
        node2.add(leafnode);
        leafnode = new DefaultMutableTreeNode("本地磁盘(D:)");
        node2.add(leafnode);
        leafnode = new DefaultMutableTreeNode("本地磁盘(E:)");
        node2.add(leafnode);
        
        DefaultMutableTreeNode node31 = new DefaultMutableTreeNode("网站列表");
        node3.add(node31);
        
        leafnode = new DefaultMutableTreeNode("sina");
        node31.add(leafnode);
        leafnode = new DefaultMutableTreeNode("yahoo");
        node31.add(leafnode);
        leafnode = new DefaultMutableTreeNode("163");
        node31.add(leafnode);
        
        
        tree.addTreeSelectionListener(this);
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(tree);
        
        contentPane.add(scrollPane);
        f.pack();
        f.setVisible(true);
        
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }

    public static void main(String args[]) {
    
        new TreeDemo2();
    }

    public void valueChanged(TreeSelectionEvent e)
    {
        String select = e.getPath().getPathComponent(e.getPath().getPathCount()-1).toString();
        System.out.println(select);
    }
}

板凳

public void valueChanged(TreeSelectionEvent e)
    {
        String select = e.getPath().getPathComponent(e.getPath().getPathCount()-1).toString();
        System.out.println(select);
    }
生物能么意思啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册