开发者社区> 问答> 正文

Java关于树的子节点添加事件问题

我想在Java树里面为每一个子节点添加事件,并且当我单击不同的子节点时会在JTextArea显示不同的信息.

展开
收起
蛮大人123 2016-03-17 14:13:54 2806 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    class TreesDemo extends JFrame implements TreeSelectionListener
    {
        JTree tree=null;
        JTextArea text=new JTextArea(20,20);
        public TreesDemo()
        {
            super("处理结点事件");
            Container con=getContentPane();
            String[][] data={
            {"我的电脑","本机磁盘(C:)","本机磁盘(D:)","本机磁盘(E:)"},
            {"收藏夹","思维论坛","Java爱好者","网上书店"},
            {"我的公文包","公司文件","私人文件","往来信件"},
            };
            DefaultMutableTreeNode root;
            DefaultMutableTreeNode treeNode[][];
            root=new DefaultMutableTreeNode("桌面");
            treeNode=new DefaultMutableTreeNode[4][4];
            for(int i=0;i<data.length;i++)
            {
                treeNode[i][0]=new DefaultMutableTreeNode(data[i][0]);
                root.add(treeNode[i][0]);
                for(int j=1;j<4;j++)
                {
                    treeNode[i][0].add(new DefaultMutableTreeNode(data[i][j]));
                }
            }
            tree=new JTree(root);
            JScrollPane scrollpane=new JScrollPane(text);
            JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,tree,scrollpane);
            con.add(splitpane);
            tree.addTreeSelectionListener(this);
            setSize(500,200);
            setVisible(true);
            validate();
            addWindowListener(
                new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {
                    System.exit(0);
                }
            }
            );
        }
        public void valueChanged(TreeSelectionEvent e)
        {
            if(e.getSource()==tree)
            {
                DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
                if(node.isLeaf())
                {
                    String str=node.toString();
                    if(str.equals("本机磁盘(C:)"))
                    {
                        text.setText(str+":\n这里显示‘C:盘文件'");
                    }
                    else if(str.equals("本机磁盘(D:)"))
                    {
                        text.setText(str+":\n这里显示‘D:盘文件'");
                    }
                    else if(str.equals("思维论坛"))
                    {
                        text.setText(str+":\n这里显示‘www.zsm8.com的精华帖子'");
                    }
                    else if(str.equals("Java爱好者"))
                    {
                        text.setText(str+":\n这里显示‘Java爱好者网站'");
                    }
                    else if(str.equals("网上书店"))
                    {
                        text.setText(str+":\n这里显示‘网上书店的购物信息'");
                    }
                    else if(str.equals("公司文件"))
                    {
                        text.setText(str+":\n这里显示‘公司内部文件'");
                    }
                }
                else
                {
                    text.setText(node.getUserObject().toString());
                }
            }
        }
    }
    public class Example5_28
    {
        public static void main(String[] args)
        {
            new TreesDemo();
        }
    }

    首先建立结构树,然后设置监听器,在监听器中设置相应的动作。程序仅供参考。

    2019-07-17 19:05:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载