问答题
本程序中定义了一个树型的通讯录,窗口左侧是一个树,右侧是一个文本域,单击树节点,则在右侧文本域中显示相关信息,如果单击的是子节点,则显示对应名字的电话信息,如图所示。
import javax, swing.*;
import javax.swing.tree.*;
import java. awt. *;
import java.awt.event.*;
import javax, swing, event.*;
class Mytree2 extends JFrame ______
{ JTree tree=null;JTextArea text=new JTextArea(20,20);
Mytree2()
{ Container con=getContentPane();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("同学通迅录");
DefaultMutableTreeNode t1=new DefaultMutableTreeNode ("大学同学");
DefaultMutableTreeNode t2=new DefaultMutableTreeNode ("研究生同学");
DefaultMutableTreeNode t11=new DefaultMutableTreeNode ("陈艳");
DefaultMutableTreeNode t12=new DefaultMutableTreeNode ("李小永");
DefaultMutableTreeNode t21=new DefaultMutableTreeNode ("王小小");
DefaultMutableTreeNode t22=new DefaultMutableTreeNode ("董小");
root. add (t1); root. add(t2);
t1.add(t1_1); t1.add (t1_2); t2.add(t2_1);t2.add(t2_2);
tree =new JTree(root);
JScrollPane scrollpane=new JScrollPane(text);
JSplitPane splitpane=new JSplitPane (JSplitPane.HORIZONTALSPLIT,
true, tree, scrollpane);
tree. addTreeSelectionListener (this);
con. add (splitpane);
addWindowListener (new WindowAdapter ()
{ public void windowClosing(WindowEvent e)
{System.exit (0); } });
setVisible (true); setBounds (70, 80,200,300);
}
public void valueChanged (TreeSelectionEvent e)
{ if (e.getSource () ==tree)
{ DefaultMutableTreeNode node=
( De faultMutableTreeNode) tree. getLastSelectedPathComponent ( );
if (node. isLeaf ())
{ String str= ______;
if (str.equals ("陈艳") )
{text.setText(str+":联系电话: 0411-4209876");}
else if(str.equals ("李小永"))
{text.setText(str+":联系电话: 010-62789876");}
else if(str.equals("王小小"))
{text.setText(str+":联系电话: 0430-63596677"); }
else if(str.equals("董小"))
{text.setText(str+":联系电话: 020-85192789"); }
}
else
{text.setText (node.getUserObject () .toString ());
}
}
}
}
public class exam_100
{public static void main(String args[])
{ Mytree2 win=new Mytree2();win.pack();}
}
【参考答案】
第1处:implements TreeSelectionListener
第2处:node.toString()