import java.awt.*;
import java.awt.event.*;
class circle extends Panel implements 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(ActonEvent 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=0,b=0,c=0,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(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 JFrame implements ActionListener
{
MenuBar bar=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 exam3_1 extends WindowAdapter
{
 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(this);
 public void windowClosing(WindowEvent e)
 {System.exit(0);}
 }
}

解决方案 »

  1.   

    这段代码很有问题,提几点吧:
    1、JFrame是Swing组件,Panel是AWT组件。虽然不会报错,希望楼主不要混用。
    2、如果你想初始化JFrame对象,通过构造函数初始化(传入参数)。这段代码中,你可以直接在Win(){}中初始化
    3、JFrame中有个方法是setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);用这个方法你就不用在exam3_1中去处理JFrame的关闭问题。楼主可以考虑用一下Myeclipse或Eclipse,这样学Java会方便些