JAVA-树组件与表格组件

要求:
建立图书馆目录索引的树型目录,并显示书籍的相关信息。

在这里插入图片描述
代码:

public class test{
    public static void main(String args[]){
        TreeWin win = new TreeWin(); 
    } 
}
public class book{
    String name;
    String chubanshe;
    book(String n,String p){
       name=n;
       chubanshe = p;
    }
    public String toString() { //返回对象的串表示
       return name;
    }
}
import javax.swing.*; 
import javax.swing.tree.*;	
import java.awt.*;
import javax.swing.event.*;
public class TreeWin extends JFrame implements TreeSelectionListener{
    JTree tree;
    JTextArea showText;
    TreeWin(){
       DefaultMutableTreeNode root=new DefaultMutableTreeNode("图书馆"); 
       //根节点
       DefaultMutableTreeNode yishu=new DefaultMutableTreeNode("艺术类");  //节点
       DefaultMutableTreeNode yishu_sheying=new DefaultMutableTreeNode("摄影");
       DefaultMutableTreeNode yishu_yinyue=new DefaultMutableTreeNode("音乐");
       
       DefaultMutableTreeNode shuli=new DefaultMutableTreeNode("数理类"); 
       DefaultMutableTreeNode shuli_shuxue=new DefaultMutableTreeNode("数学");//节点
       DefaultMutableTreeNode shui_ligong=new DefaultMutableTreeNode("理工");
       
       DefaultMutableTreeNode yuyan=new DefaultMutableTreeNode("语言类"); 
       DefaultMutableTreeNode yuyan_hanyu=new DefaultMutableTreeNode("汉语");
       DefaultMutableTreeNode yuyan_yingyu=new DefaultMutableTreeNode("英语");
       
       DefaultMutableTreeNode jisuanji=new DefaultMutableTreeNode("计算机类"); 
       DefaultMutableTreeNode jisuanji_zidonghua=new DefaultMutableTreeNode("自动化"); 
       DefaultMutableTreeNode jisuanji_jisuanji=new DefaultMutableTreeNode("计算机"); 
       DefaultMutableTreeNode sheying1=
       new DefaultMutableTreeNode(new book("美国纽约摄影学院-摄影教材","中国摄影出版社"));              //节点
       DefaultMutableTreeNode sheying2=
       new DefaultMutableTreeNode(new book("摄影的艺术","人民邮电出版社"));              //节点
       DefaultMutableTreeNode yinyue1=
       new DefaultMutableTreeNode(new book("表演练声课:释放天然噪音","文化发展出版社"));            //节点
       DefaultMutableTreeNode yinyue2=
       new DefaultMutableTreeNode(new book("京剧原来如此美丽","中信出版社"));  //节点 
       DefaultMutableTreeNode shuxue1=
       new DefaultMutableTreeNode(new book("数学分析","北京大学出版社"));
       DefaultMutableTreeNode shuxue2=
       new DefaultMutableTreeNode(new book("高等数学","北京大学出版社"));
       DefaultMutableTreeNode ligong1=
       new DefaultMutableTreeNode(new book("机械工程","暨南大学出版社"));
       DefaultMutableTreeNode ligong2=
       new DefaultMutableTreeNode(new book("电学","中山大学出版社"));
       DefaultMutableTreeNode hanyu1=
       new DefaultMutableTreeNode(new book("大学语文","中文出版社"));
       DefaultMutableTreeNode hanyu2=
       new DefaultMutableTreeNode(new book("唐诗三百首","中文出版社"));
       DefaultMutableTreeNode yingyu1=
       new DefaultMutableTreeNode(new book("大学英语","外语出版社"));
       DefaultMutableTreeNode yingyu2=
       new DefaultMutableTreeNode(new book("听说教程","外研出版社"));
       DefaultMutableTreeNode zidonghua1=
       new DefaultMutableTreeNode(new book("自动化","工业大学出版社"));
       DefaultMutableTreeNode zidonghua2=
       new DefaultMutableTreeNode(new book("操作系统","工业出版社"));
       DefaultMutableTreeNode jisuanji1=
   	   new DefaultMutableTreeNode(new book("计算机应用","电子出版社"));
       DefaultMutableTreeNode jisuanji2=
   	   new DefaultMutableTreeNode(new book("电脑系统","信息出版社"));
       root.add(yishu);//确定节点之间的关系 
       yishu.add(yishu_sheying);
       yishu.add(yishu_yinyue);
       yishu_sheying.add(sheying1);                                        //确定节点之间的关系
       yishu_sheying.add(sheying2);
       yishu_yinyue.add(yinyue1);
       yishu_yinyue.add(yinyue2);
       
       root.add(shuli); 
       shuli.add(shuli_shuxue);
       shuli.add(shui_ligong);
       shuli_shuxue.add(shuxue1);
       shuli_shuxue.add(shuxue2);
       shui_ligong.add(ligong1);
       shui_ligong.add(ligong2);
       
       root.add(yuyan);
       yuyan.add(yuyan_hanyu);
       yuyan.add(yuyan_yingyu);
       yuyan_hanyu.add(hanyu1);
       yuyan_hanyu.add(hanyu2);
       yuyan_yingyu.add(yingyu1);
       yuyan_yingyu.add(yingyu2);
       
       root.add(jisuanji);
       jisuanji.add(jisuanji_zidonghua);
       jisuanji.add(jisuanji_jisuanji);
       jisuanji_zidonghua.add(zidonghua1);
       jisuanji_zidonghua.add(zidonghua2);
       jisuanji_jisuanji.add(jisuanji1);
       jisuanji_jisuanji.add(jisuanji2);
       
       tree=new JTree(root);                                   //用root做根的树组件
       tree.addTreeSelectionListener(this);                    //监视树组件上的事件
       showText=new JTextArea();
       setLayout(new GridLayout(1,2)); 
       add(new JScrollPane(tree));
       add(new JScrollPane(showText));
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setVisible(true);
       setBounds(80,80,300,300);
       validate();
    }
    public void valueChanged(TreeSelectionEvent e){
       DefaultMutableTreeNode node=
       (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
       if(node.isLeaf()){
           book s=(book)node.getUserObject();                //得到节点中存放的对象
           showText.append(s.name+","+s.chubanshe+"\n");  
       }
       else{
           showText.setText(null);
       }   
    }
}


发布了15 篇原创文章 · 获赞 1 · 访问量 322

猜你喜欢

转载自blog.csdn.net/z_mawkish/article/details/105185661