利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形的面积,当点击“判断三边”时,若能构成三角形,在标签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("求三角形面积");
- }
- }