1、类图

2、代码

Triangle类:
package triangleDemo;
public class Triangle{
    
        
        public String triangle(int a,int b,int c){
            String result;
            if ((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {

            if ((a+b>c)&&(a+c>b)&&(b+c>a)) {
                if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) {
                    result="直角三角形.";
                } else if (a==b&&b==c&&a==c) {
                    result="等边三角形.";
                } else if (a==b||a==c||b==c) {
                    result="等腰三角形.";
                } else {
                    result="一般三角形.";
                }
            } else {
                result="不能构成三角形.";
            }
        } else {
            result="边的值不在范围内!";
        }
            return result;

    }
         public boolean Validation(String[] value){
                if(value.length<3){//没有三个数据
                    return false;
                }
                try {
                    for(int i=0;i<3;i++){
                        int b = Integer.valueOf(value[i]).intValue();
                    }
                } catch (NumberFormatException e){//不能转换成整型
                    return false;
                }
                return true;
            }
     public int perimeter(int a,int b,int c){
                return a+b+c;
    }
     public float triangleArea(int a,int b,int c){
                float s = (float) (0.5*perimeter( a, b, c));
                return (float) Math.sqrt((s*(s-a)*(s-b)*(s-c)));
    }
}

   frame类:

package triangleDemo;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
 
import triangleDemo.Triangle;
 
public class DisTriangle{
 
    private JFrame frame;
     
    private final JLabel label = new JLabel("请输入三角形的三条边:");
    private final JLabel lblA = new JLabel("a:");
    private final JLabel lblB = new JLabel("b:");
    private final JLabel lblC = new JLabel("c:");
    private final JLabel result_1 = new JLabel("这个三角形是:");
    private final JLabel result_2 = new JLabel("面积是:       周长是:");
     
     
    private final JTextField lengthOfa = new JTextField();
    private final JTextField lengthOfb = new JTextField();
    private final JTextField lengthOfc = new JTextField();
     
    private final JButton calculate = new JButton("确定");
    private final JButton clean = new JButton("清空");
    private Triangle tri;

 
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    new DisTriangle();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    /**
     * Create the frame.
     * @wbp.parser.entryPoint
     */
    public DisTriangle() {
        frame = new JFrame("三角形计算程序");
        frame.setBounds((Toolkit.getDefaultToolkit().getScreenSize().width/2)-256, (Toolkit.getDefaultToolkit().getScreenSize().height/2)-192, 450, 360);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.setVisible(true);
        frame.setResizable(false);
 
        label.setFont(new Font("宋体", Font.PLAIN, 16));
        label.setBounds(24, 10, 350, 30);
        frame.getContentPane().add(label);
        result_1.setFont(new Font("宋体", Font.PLAIN, 16));
        result_1.setBounds(24, 192, 350, 30);
        frame.getContentPane().add(result_1);
        result_2.setFont(new Font("宋体", Font.PLAIN, 16));
        result_2.setBounds(24, 254, 350, 30);
        frame.getContentPane().add(result_2);
         
     
        lblA.setFont(new Font("宋体", Font.PLAIN, 16));
        lblA.setBounds(60, 70, 30, 15);
        lblB.setFont(new Font("宋体", Font.PLAIN, 16));
        lblB.setBounds(175, 70, 30, 15);
        lblC.setFont(new Font("宋体", Font.PLAIN, 16));
        lblC.setBounds(295, 70, 30, 15);
        frame.getContentPane().add(lblA);
        frame.getContentPane().add(lblB);
        frame.getContentPane().add(lblC);
         
        lengthOfa.setBounds(89, 67, 70, 25);
        lengthOfb.setBounds(205, 65, 70, 25);
        lengthOfc.setBounds(315, 65, 70, 25);
        lengthOfa.setColumns(10);      
        lengthOfb.setColumns(10);
        lengthOfc.setColumns(10);
        frame.getContentPane().add(lengthOfa);
        frame.getContentPane().add(lengthOfb);
        frame.getContentPane().add(lengthOfc);
         
        calculate.setBounds(110, 130, 95, 25);
        frame.getContentPane().add(calculate);
        clean.setBounds(240, 130, 95, 25);
        frame.getContentPane().add(clean);
         
        calculate.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0){
                if(arg0.getSource()==calculate){
                    tri = new Triangle();
                    String[] value = new String[3];
                    value[0] = lengthOfa.getText();
                    value[1] = lengthOfb.getText();
                    value[2] = lengthOfc.getText();
                    if(!tri.Validation(value)){//调用验证函数
                        JOptionPane.showMessageDialog(null, "请确保输入的边为整数!", "错误", JOptionPane.ERROR_MESSAGE);
                        allClean();
                    }
                    else{
                        int a = Integer.valueOf(value[0]).intValue();//已验证过不再进行异常处理
                        int b = Integer.valueOf(value[1]).intValue();
                        int c = Integer.valueOf(value[2]).intValue();
                        String triangleType = tri.triangle(a,b,c);
                        result_1.setText("这个三角形是:"+triangleType);
                        if(triangleType.equals("边的值不在范围内!")){
                            JOptionPane.showMessageDialog(null, "边的值不在范围内!", "错误", JOptionPane.ERROR_MESSAGE);
                            allClean();
                        }else if(triangleType.equals("不能构成三角形.")){
                            JOptionPane.showMessageDialog(null, "不能构成三角形.", "错误", JOptionPane.ERROR_MESSAGE);
                            allClean();
                        }else{
                        
                        result_2.setText("面积是:"+tri.triangleArea(a, b, c)+"     周长是:"+tri.perimeter(a, b, c));
                    }
                    }
                }
            }
        });
         
        clean.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0){
                if(arg0.getSource()==clean){
                     allClean();
                }
            }
        });
    }
     
    private void allClean(){
        lengthOfa.setText("");
        lengthOfb.setText("");
        lengthOfc.setText("");
        result_1.setText("这个三角形是:");
        result_2.setText("面积是:       周长是:");
    }
}

3、界面截图

 

posted on 2017-05-03 16:48  001_陈定国  阅读(235)  评论(0)    收藏  举报