问答题

本程序中定义了一个树型的通讯录,窗口左侧是一个树,右侧是一个文本域,单击树节点,则在右侧文本域中显示相关信息,如果单击的是子节点,则显示对应名字的电话信息,如图所示。


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()
热门 试题

问答题
本程序的功能是计算圆和三角形的面积,通过“选择”菜单可以分别进行圆和三角形面积的计算,单击“圆面积计算”菜单项,窗口中就会显示两个文本框和一个“确定”按钮,在第一个文本框中输入圆的半径,单击“确定”按钮后就可以在第二个文本框中显示圆的面积。单击“三角形面积计算”菜单项,窗口中就会显示四个文本框和一个“确定”按钮,在前三个文本框中分别输入三角形三个边的长度,单击“确定”按钮后,如果三个边的长度不能组成三角形,则在结果文本框中给出提示信息,否则显示三角形的面积。如果输入的值不是数值,则给出提示信息,如图所示。import java.awt.*;import java.awt.event.*;class circle extends Panel imDlements ActionListener{double r, area;TextField radius=null,result=null;Button b=null;void circle(){radius=new TextField(10);result=new TextField(10);b=new Button( 确定 );add (new Label ( 输入半径 ));add (radius);add(new Label( 面积是: ));add(result);add(b);b.addActionListener(this);result.setEnabled(false);}public void actionPerformed(ActionEvent e){try{ r=Double.parseDouble(radius.getText());area=Math. PI*r*r;result.setText( +area);catch(Exception ee){ radius.setText( 请输入数学字符 );}}}class triangle extends Panel implements ActionListener{ double a=O,b=O,c=O,area;TextField border a=new TextField(6),border b=new TextField(6),border c=new TextField(6),result=new TextField(24);Button button=new Button( 确定 );triangle(){add (new Label ( 输入三边的长度: ));add(border_a); add(border_b); add(border_c);add (new Label( 面积是: ));add (result);add (button);button.addActionListener(this);result.setEnabled(false);}public void actionPerformed(ActionEvent e){ try{ a=Double.parseDouble(border a.getText());b=Double.parseDouble(border_b.getText());c=Double.parseDouble(border_c.getText());if(a+b>c&&a+c>b&&c+b>a){ double p=(a+b+c) 2;area=Math, sqrt (p* (p-a) * (p-b) * (p-c));result, setText ( +area);}else{ result, setText ( 您输入的数字不能形成三角形 );}}catch(Exception ee){ result, setText ( 请输入数字字符 );}}}class Win extends JFrameimplements ActionListener{ MenuBar bar=null;Menu menu=null;MenuItem item1, item2;circle circle;triangle trangle;Win ( ){ bar=new MenuBar(); menu=new Menu( 选择 );setSize(300,200);item1=new MenuItem ( 圆面积计算 );item2=new MenuItem( 三角形面积计算 );menu.add(item1);menu.add(item2);bar.add(menu);setMenuBar(bar);circle=new circle();trangle=new triangle();item1.addActionListener(this);item2.addActionListener(this);setVisible(true);}public void actionPerformed(ActionEvent e){ if(e.getSource()==item1){ removeAll();add(circle, Center );validate();}else if(e.getSource()==item2){ removeAll();add(trangle, Center ;validate();}}}public class exam_1{ public static void main(String args[]){ Win win=new Win();win.setTitle( exam_1 );win.setBounds(100,100,700,300);win.setVisible(true);win.addWindowListener(new WindowListener(){ public void windowClosing(WindowEvent e){ System.exit(0);}});}}