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、界面截图





浙公网安备 33010602011771号