📄 cacuarea.java
字号:
//下面的例子6是一个应用程序,用来计算常见的几何图形的面积。程序有二个窗口对象,
//该窗口有一个“选择”菜单,其中有3个菜单项。当我们选择某个选项时,窗口的中心就会出
//主现计算相应几何图形面积的用户界面,如图15.6所示。
import java.awt.*;
import java.awt.event.*;
public class CacuArea
{
public static void main(String args[])
{
Area win=new Area();
win.setBounds(100,100,200,100);
win.setVisible(true);
win.pack();//用紧凑方式显示窗口。
win.addWindowListener(new WindowAdapter() //适配器(见15.5节
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
class Area extends Frame implements ActionListener
{
MenuBar menubar1; //声明1个菜单条对象
Menu menu1; // 声明1个菜单对象
MenuItem item1, item2, item3;
TextField text[]=new TextField[4];
Button buttonarr[]=new Button[3];
double a=0, b=0, c=0;
Area()
{
super( "常见面积计算");
menubar1=new MenuBar();
menu1=new Menu("选择");
item1=new MenuItem("圆面积计算");item2=new MenuItem("椭圆面积计算");
item3=new MenuItem("三角形面积计算");
item1.addActionListener(this); //把窗口作为菜单项的监视器
item2.addActionListener(this); item3.addActionListener(this);
menu1.add(item1);menu1.add(item2);menu1.add(item3);
menubar1.add(menu1);setMenuBar(menubar1);
for(int i=0;i<=3;i++)
{
text[i]=new TextField(8);
}
for(int i=0;i<=2;i++)
{
buttonarr[i]=new Button("确定");
buttonarr[i].addActionListener(this);
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==item1) //负责打开计算圆的面积的界面
{
removeAll();
for(int i=0;i<=3;i++)
{
text[i].setText(null);
}
circle_area();
}
else if(e.getSource()==item2) //负责打开计算椭圆面积的界面
{
removeAll();
for(int i=0;i<=3;i++)
{
text[i].setText(null);
}
ellipse_area();
}
else if(e.getSource()==item3) //负责打开计算三角形面积的界面
{
removeAll();
for(int i=0;i<=3;i++)
{
text[i].setText(null);
}
trangle_area();
}
else if(e.getSource()==buttonarr[0])//负责计算圆的面积
{
a=Double.valueOf(text[0].getText()).doubleValue();
text[1].setText(" "+3.1415926*a*a);
}
else if(e.getSource()==buttonarr[1])//负责计算椭圆的面积
{
a=Double.valueOf(text[0].getText()).doubleValue();
b=Double.valueOf(text[1].getText()).doubleValue();
text[2].setText(" "+3.1415926*a*b);
}
else if(e.getSource()==buttonarr[2])//负责计算三角形面积
{
a=Double.valueOf(text[0].getText()).doubleValue();
b=Double.valueOf(text[1].getText()).doubleValue();
c=Double.valueOf(text[2].getText()).doubleValue();
double p=(a+b+c)/2;
text[3].setText(" "+Math.sqrt(p*(p-a)*(p-b)*(p-c)));
}
}
public void circle_area()
{
Panel p=new Panel(), p1=new Panel(), p2=new Panel();
p.setLayout(new GridLayout(2, 1));
p1.add(new Label("输入圆的半径: "));
p1.add(text[0]);
p1.add(buttonarr[0]);
p2.add(new Label("面积:"));p2.add(text[1]);
p.add(p1);p.add(p2);
add(p, "Center"); this.pack();//用紧凑方式显示窗口
}
public void ellipse_area()
{
Panel p=new Panel(), p1=new Panel(), p2=new Panel();
p.setLayout(new GridLayout(2, 1));
p1.add(new Label("输入椭圆的长轴和短轴:"));
p1.add(text[0]);p1.add(text[1]);
p1.add(buttonarr[1]);
p2.add(new Label("面积: "));p2.add(text[2]);
p.add(p1);p.add(p2);
add(p, "Center"); this.pack();//用紧凑方式显示窗口
}
public void trangle_area()
{
Panel p=new Panel(), p1=new Panel(), p2=new Panel();
p.setLayout(new GridLayout(2, 1));
p1.add(new Label("输入三个边的长度:"));
p1.add(text[0]);p1.add(text[1]);p1.add(text[2]);
p1.add(buttonarr[2]);
p2.add(new Label("面积:"));p2.add(text[3]);
p.add(p1);p.add(p2);
add(p, "Center"); this.pack();//用紧凑方式显示窗口
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -