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

📄 right7_2_3_20.htm

📁 清华JAVA教程。不用多说了吧
💻 HTM
字号:
<html><head><title>JAVA编程语言</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link rel="stylesheet" href="../../../css/text.css" type="text/css"></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" ><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">  <tr>     <td valign="top">       <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF">        <tr>          <td height="244" valign="top">             <p> <span class="pt9-black">   如果要显示一个层次关系分明的一组数据,用树状图表示能给用户一个直观而易用的感觉,JTree类如同Windows的资源管理器的左半部,通过点击可以&quot;打开&quot;、&quot;关闭&quot;文件夹,展开树状结构的图表数据。JTree也是依据M-V-C的思想来设计的,Jtree的主要功能是把数据按照树状进行显示,其数据来源于其它对象,其显示效果通常如下图所示:<br>              <br>                  <img src="../../../images/tu/ch07/7_2_3_20.gif" width="356" height="182">          <br>              <br>                下面是一棵包含六个分枝点的树的例子,来演示JTree的实现过程。</span></p>            <p class="pt9-black">  import java.awt.*;<br>                import java.awt.event.*;<br>                import javax.swing.*;<br>                import javax.swing.tree.*;<br>                class Branch{<br>                   DefaultMutableTreeNode r; <br>              <font color="339900">//DefaultMutableTreeNode是树的数据结构中的通用节点,节点也可以有多个子节点。</font><br>                  public Branch(String[] data){<br>                     r=new DefaultMutableTreeNode(data[0]);<br>                     for(int i=1;i&lt;data.length;i++)<br>                     r.add(new DefaultMutableTreeNode(data[i])); <font color="339900"><br>                      //给节点r添加多个子节点</font><br>                  }<br>                  public DefaultMutableTreeNode node(){<font color="339900">//返回节点</font><br>                     return r;<br>                  }<br>                }<br>                public class Trees extends JPanel{<br>                  String [][]data={<br>                          {&quot;Colors&quot;,&quot;Red&quot;,&quot;Blue&quot;,&quot;Green&quot;},<br>                          {&quot;Flavors&quot;,&quot;Tart&quot;,&quot;Sweet&quot;,&quot;Bland&quot;},<br>                          {&quot;Length&quot;,&quot;Short&quot;,&quot;Medium&quot;,&quot;Long&quot;},<br>                          {&quot;Volume&quot;,&quot;High&quot;,&quot;Medium&quot;,&quot;Low&quot;},<br>                          {&quot;Temperature&quot;,&quot;High&quot;,&quot;Medium&quot;,&quot;Low&quot;},<br>                          {&quot;Intensity&quot;,&quot;High&quot;,&quot;Medium&quot;,&quot;Low&quot;}<br>                          };<br>                  static int i=0; <font color="339900">//I用于统计按钮点击的次数</font><br>                  DefaultMutableTreeNode root,child,chosen;<br>                  JTree tree;<br>                  DefaultTreeModel model;<br>                  public Trees(){<br>                     setLayout(new BorderLayout());<br>                     root=new DefaultMutableTreeNode(&quot;root&quot;); <font color="339900"><br>                     //根节点进行初始化</font><br>                     tree=new JTree(root); <font color="339900"><br>                     //树进行初始化,其数据来源是root对象</font><br>                     add(new JScrollPane(tree));<font color="339900"><br>                     //把滚动面板添加到Trees中</font><br>                     model=(DefaultTreeModel)tree.getModel();<br>                     <font color="339900">//获得数据对象DefaultTreeModel</font><br>                     JButton test=new JButton(&quot;Press me&quot;);<br>                     <font color="339900">//按钮test进行初始化</font><br>                     test.addActionListener(new ActionListener(){<font color="339900"><br>                     //按钮test注册监听器</font><br>                        public void actionPerformed(ActionEvent e){<br>                        if (i&lt;data.length){ <font color="339900"><br>                        //按钮test点击的次数小于data的长度</font><br>                            child=new Branch(data[i++]).node();<font color="339900"><br>                            //生成子节点</font><br>                            chosen=(DefaultMutableTreeNode) <font color="339900"><br>                            //选择child的父节点</font><br>                                tree.getLastSelectedPathComponent();<br>                                if(chosen==null) chosen=root;<br>                                model.insertNodeInto(child,chosen,0); <br>                                <font color="339900">//把child添加到chosen</font><br>                        }<br>                     }<br>                  });<br>                  test.setBackground(Color.blue); <font color="339900"><br>                  //按钮test设置背景色为蓝色</font><br>                  test.setForeground(Color.white); <font color="339900"><br>                  //按钮test设置前景色为白色</font><br>                  JPanel p=new JPanel(); <font color="339900"><br>                  //面板p初始化</font><br>                  p.add(test); <font color="339900"><br>                  //把按钮添加到面板p中</font><br>                  add(p,BorderLayout.SOUTH); <font color="339900"><br>                  //把面板p添加到Trees中</font><br>                }<br>                public static void main(String args[]){<br>                  JFrame jf=new JFrame(&quot;JTree demo&quot;);</p>            <p class="pt9-black">     jf.getContentPane().add(new Trees(), BorderLayout.CENTER);               <br>                         <font color="339900">//把Trees对象添加到JFrame对象的中央</font><br>                  jf.setSize(200,500);<br>                  jf.setVisible(true);<br>                }<br>               }</p>            <p><span class="pt9-black">  运行结果是多种多样的,与用户点击按钮的次序有关,其中一种结果如下</span><br>                     <img src="../../../images/tu/ch07/7_2_3_20_1.gif" width="194" height="563"><br>            </p>            <p><span class="pt9-black"> </span></p>            </td>        </tr>      </table>    </td>  </tr></table></body></html>

⌨️ 快捷键说明

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