⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example5_13.java

📁 书中的例题
💻 JAVA
字号:
/* 处理节点事件 */
   import java.awt.*;
   import java.awt.event.*;
   import javax.swing.*;
   import javax.swing.tree.*;
   import javax.swing.event.*;
  //定义树结构类
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  treeNode[][];//定义节点数组
     DefaultMutableTreeNode root;         //定义根节点
     //建立根节点对象
     root=new DefaultMutableTreeNode("桌面");
	 //声明节点数组容量
	 treeNode=new DefaultMutableTreeNode[4][4];
	//外循环建立父节点,内循环建立子节点
	for (int i=0;i<data.length ;i++ )
	{
	 //建立父节点treeNode
     treeNode[i][0]=new DefaultMutableTreeNode(data[i][0]);
     root.add(treeNode[i][0]);
     for(int j=1;j<4;j++)
	  { //给节点treeNode添加多个子节点
	   treeNode[i][0].add(new DefaultMutableTreeNode(data[i][j]));
	  }
    }
    //创建根为root的树对象tree
   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); 
   tree.setFont(new Font("default",32,32));
   text.setFont(new Font("default",32,32));
   setSize(800,600);
   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()); 
	   }
     }
  }   //  valueChanged()_end
}
//主类
public class Example5_13
{
 public static void main(String args[])
  {
     new TreesDemo();
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -