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