您的位置:首页 > 其它

利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三

2010-11-15 23:00 1441 查看
利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三角形,请重新设置三边”,只有满足能够构成三角形条件时,点击“计算面积”按钮,将面积显示在第四个文本框中。当点击“退出程序” 按钮时,能够退出应用程序。
//方案一
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
class WindowBox extends Frame
implements ActionListener
{
Box baseBox,boxV1,boxV2;//三个盒式容器
Label la;               //一个标签
Button b1,b2,b3;        //三个按钮
TextField t1,t2,t3,t4;  //三个文本域
WindowBox(String s)
{
super(s);            //调用父类(Frame)构造函数

boxV1=Box.createVerticalBox();               //列型盒式布局
boxV1.add(new Label("请输入三角形第一条边:                     "));//空格重要,用于布局
boxV1.add(Box.createVerticalStrut(10));      //垂直支撑
boxV1.add(new Label("请输入三角形第二条边:"));
boxV1.add(Box.createVerticalStrut(10));
boxV1.add(new Label("请输入三角形第三条边:"));
boxV1.add(Box.createVerticalStrut(10));
boxV1.add(new Label("三角形面积是:"));
boxV1.add(Box.createVerticalStrut(10));
la=new Label();                              //标签初始状态为空
boxV1.add(la);
boxV1.add(Box.createVerticalStrut(10));
b1=new Button("计算面积");
boxV1.add(b1);
b1.addActionListener(this);                  //监视器

boxV2=Box.createVerticalBox();               //列型盒式布局
t1=new TextField(12);
boxV2.add(t1);
boxV2.add(Box.createVerticalStrut(10));
t2=new TextField(12);
boxV2.add(t2);
boxV2.add(Box.createVerticalStrut(10));
t3=new TextField(12);
boxV2.add(t3);
boxV2.add(Box.createVerticalStrut(10));
t4=new TextField(12);
boxV2.add(t4);
boxV2.add(Box.createVerticalStrut(10));
b2=new Button("判断三边");
boxV2.add(b2);
b2.addActionListener(this);
boxV2.add(Box.createVerticalStrut(10));
b3=new Button("退出程序");
boxV2.add(b3);
b3.addActionListener(this);

baseBox=Box.createHorizontalBox();           //行型盒式布局
baseBox.add(boxV1);
baseBox.add(Box.createHorizontalStrut(10));  //水平支撑
baseBox.add(boxV2);
setLayout(new FlowLayout());
add(baseBox);

setBounds(200,200,380,250);
setVisible(true);
}

public void actionPerformed(ActionEvent e)      //处理整件的接口
{  boolean boo=false;
int a=0,b=0,c=0;
a=Integer.parseInt(t1.getText());
b=Integer.parseInt(t2.getText());
c=Integer.parseInt(t3.getText());
if(a+b>c&&a+c>b&&b+c>a)  //判断三边
boo=true;
else
boo=false;
if(e.getSource()==b2)
{
if(boo)
la.setText("可以构成三角形!");
else
la.setText("不能构成一个三角形,请重新设置三边");
t4.setText("");    //清空
}

else if(e.getSource()==b1)//计算面积
{
if(boo)
{
double p=(a+b+c)/2.0;
double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
String s=String.valueOf(area);
t4.setText(s);
}
}

else if(e.getSource()==b3)//退出
{
System.exit(0);
}
}
}

public class triangle1
{
public static void main(String[] args)
{
new WindowBox("求三角形面积");
}
}
//方案二
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
class WindowBox extends Frame
implements ActionListener
{
Box baseBox,boxV1,boxV2;//三个盒式容器
Label la;               //一个标签
Button b1,b2,b3;        //三个按钮
TextField t1,t2,t3,t4;  //三个文本域
WindowBox(String s)
{
super(s);            //调用父类(Frame)构造函数

boxV1=Box.createVerticalBox();               //列型盒式布局
boxV1.add(new Label("请输入三角形第一条边:                     "));//空格重要,用于布局
boxV1.add(Box.createVerticalStrut(10));      //垂直支撑
boxV1.add(new Label("请输入三角形第二条边:"));
boxV1.add(Box.createVerticalStrut(10));
boxV1.add(new Label("请输入三角形第三条边:"));
boxV1.add(Box.createVerticalStrut(10));
boxV1.add(new Label("三角形面积是:"));
boxV1.add(Box.createVerticalStrut(10));
la=new Label();                              //标签初始状态为空
boxV1.add(la);
boxV1.add(Box.createVerticalStrut(10));
b1=new Button("计算面积");
boxV1.add(b1);
b1.addActionListener(this);                  //监视器

boxV2=Box.createVerticalBox();               //列型盒式布局
t1=new TextField(12);
boxV2.add(t1);
boxV2.add(Box.createVerticalStrut(10));
t2=new TextField(12);
boxV2.add(t2);
boxV2.add(Box.createVerticalStrut(10));
t3=new TextField(12);
boxV2.add(t3);
boxV2.add(Box.createVerticalStrut(10));
t4=new TextField(12);
boxV2.add(t4);
boxV2.add(Box.createVerticalStrut(10));
b2=new Button("判断三边");
boxV2.add(b2);
b2.addActionListener(this);
boxV2.add(Box.createVerticalStrut(10));
b3=new Button("退出程序");
boxV2.add(b3);
b3.addActionListener(this);

baseBox=Box.createHorizontalBox();           //行型盒式布局
baseBox.add(boxV1);
baseBox.add(Box.createHorizontalStrut(10));  //水平支撑
baseBox.add(boxV2);
setLayout(new FlowLayout());
add(baseBox);

setBounds(200,200,380,250);
setVisible(true);
}

public void actionPerformed(ActionEvent e)      //处理整件的接口
{
int a=0,b=0,c=0;
a=Integer.parseInt(t1.getText());
b=Integer.parseInt(t2.getText());
c=Integer.parseInt(t3.getText());
Trangle t=new Trangle(a,b,c);

if(e.getSource()==b2)
{
if(t.boo)
la.setText("可以构成三角形!");
else
la.setText("不能构成一个三角形,请重新设置三边");
t4.setText("");    //清空
}

else if(e.getSource()==b1)//计算面积
{
String str=String.valueOf(t.Area());
t4.setText(str);

}

else if(e.getSource()==b3)//退出
{
System.exit(0);
}
}
}

class Trangle
{
double sideA,sideB,sideC;
boolean boo;
public Trangle(double a,double b,double c)
{
sideA=a;sideB=b;sideC=c;
if(a+b>c&&a+c>b&&c+b>a)
boo=true;
else
boo=false;
}
public double Area()
{
if(boo)
{
double p=(sideA+sideB+sideC)/2.0;
double area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
return area;
}
else
return 0;
}

}

public class triangle2
{
public static void main(String[] args)
{
new WindowBox("求三角形面积");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐