1. 程式人生 > >第4次作業類測試代碼+019+李悅洲

第4次作業類測試代碼+019+李悅洲

stack app static jlabel field ted temp 函數 private

類圖:

技術分享

技術分享

代碼:

package swingDesign;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import
java.awt.event.ActionEvent; public class Triangle extends JFrame { private JPanel contentPane; private JTextField aside; private JTextField bside; private JTextField cside; private JTextField resulttext; private JTextField square; private JTextField length; /** * Launch the application.
*/ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Triangle frame = new Triangle(); frame.getContentPane().setLayout(null); frame.setVisible(true
); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Triangle() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setLayout(null); setContentPane(contentPane); JLabel lab = new JLabel("\u8BF7\u8F93\u5165\u4E09\u89D2\u5F62\u7684\u4E09\u6761\u8FB9\uFF1A"); lab.setFont(new Font("黑體", Font.PLAIN, 14)); contentPane.add(lab); lab.setBounds(129, 10, 196, 32); JLabel laba = new JLabel("a:"); laba.setFont(new Font("黑體", Font.PLAIN, 14)); contentPane.add(laba); laba.setBounds(64, 73, 36, 23); JLabel labb = new JLabel("b:"); labb.setFont(new Font("黑體", Font.PLAIN, 14)); labb.setBounds(187, 73, 36, 23); contentPane.add(labb); JLabel labc = new JLabel("c:"); labc.setFont(new Font("黑體", Font.PLAIN, 14)); labc.setBounds(307, 73, 36, 23); contentPane.add(labc); aside = new JTextField(); aside.setBounds(84, 73, 66, 21); contentPane.add(aside); aside.setColumns(10); bside = new JTextField(); bside.setBounds(206, 73, 66, 21); contentPane.add(bside); bside.setColumns(10); cside = new JTextField(); cside.setBounds(329, 73, 66, 21); contentPane.add(cside); cside.setColumns(10); final JButton btnOk = new JButton("OK"); btnOk.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==btnOk) { Caculate cacu =new Caculate(); int a=0,b=0,c=0; String A,B,C; A=aside.getText().toString(); B=bside.getText().toString(); C=cside.getText().toString(); //判斷是否為數字 if(A.matches("[0-9]+") && B.matches("[0-9]+") && C.matches("[0-9]+")) { a = Integer.parseInt(A); b = Integer.parseInt(B); c = Integer.parseInt(C); resulttext.setText(cacu.triangle(a,b,c)); square.setText(cacu.square(a,b,c)+""); length.setText(cacu.length(a,b,c)+""); } else { resulttext.setText("輸入有誤,請重新輸入"); } } } }); btnOk.setFont(new Font("宋體", Font.PLAIN, 14)); btnOk.setBounds(118, 119, 79, 23); contentPane.add(btnOk); final JButton btnCancel = new JButton("CANCEL"); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==btnCancel) { aside.setText(""); bside.setText(""); cside.setText(""); resulttext.setText(""); square.setText(""); length.setText(""); JOptionPane.showMessageDialog(null,"已重置"); } } }); btnCancel.setFont(new Font("宋體", Font.PLAIN, 14)); btnCancel.setBounds(246, 119, 79, 23); contentPane.add(btnCancel); JLabel label = new JLabel("\u8FD9\u4E2A\u4E09\u89D2\u5F62\u662F:"); label.setFont(new Font("宋體", Font.PLAIN, 14)); label.setBounds(84, 164, 113, 23); contentPane.add(label); resulttext = new JTextField(); resulttext.setBounds(183, 165, 136, 21); contentPane.add(resulttext); resulttext.setColumns(10); JLabel label_1 = new JLabel("\u9762\u79EF\u662F:"); label_1.setFont(new Font("宋體", Font.PLAIN, 14)); label_1.setBounds(64, 208, 54, 15); contentPane.add(label_1); square = new JTextField(); square.setBounds(111, 205, 66, 21); contentPane.add(square); square.setColumns(10); JLabel label_2 = new JLabel("\u5468\u957F\u662F:"); label_2.setFont(new Font("宋體", Font.PLAIN, 14)); label_2.setBounds(233, 208, 54, 15); contentPane.add(label_2); length = new JTextField(); length.setBounds(283, 205, 66, 21); contentPane.add(length); length.setColumns(10); } }

package swingDesign;

import java.text.DecimalFormat;

public class Caculate {
       
    public final static int DENGBIAN = 0;
    public final static int DENGYAO  = 1;
    public final static int ZHIJIAO  = 2;
    public final static int YIBAN    = 3;
     
    private int a;
    private int b;
    private int c;
     
    protected int checkType()//判斷三角形種類
    {
        if(a==b&&a==c&&b==c)
            return DENGBIAN;
        if(a==b||a==c||b==c)
            return DENGYAO;
        if(a*a+b*b==c*c||a*a==b*b+c*c||b*b==a*a+c*c)
            return ZHIJIAO;
        return YIBAN;
    }
     
    protected boolean checkTheOne()//檢查範圍條件
     {
         if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100))
             return true;
         else
             return false; 
     } 
     
    protected boolean checkTheTwo()//檢查是否組成三角形
     {
         if((a<(b+c))&&(b<(a+c))&&(c<(a+b)))
             return true;
         else
             return false;
     }
     
    public String triangle( int a, int b, int c)//題目要求的函數
     {
        String ch = null;
        this.a = a;
        this.b = b;
        this.c = c;
         
        if(!checkTheOne())
        {
            ch = "邊的值不在範圍內";
        }
        else if(!checkTheTwo())
        {
            ch = "不構成三角形";
        }
        else
        {
            switch(checkType())
            {
            case DENGBIAN:      ch = "等邊三角形";break;
            case DENGYAO:       ch = "等腰三角形";break;
            case ZHIJIAO:       ch = "直角三角形";break;
            case YIBAN:         ch = "一般三角形";break;
            }
        }
        return ch;
     }
     
    public String square(int a,int b,int c)
    {
        String temp = triangle(a, b, c);
        DecimalFormat df = new DecimalFormat("#.00");
        float result=0;        
        float p;    
        String mianjiresult = null;
        if(!temp.equals("邊的值不在範圍內") &&!temp.equals("不構成三角形"))
        {
            p=(float) ((a+b+c)/2.0);
            result=(float) (Math.sqrt(p*(p-a)*(p-b)*(p-c)));
            mianjiresult=df.format(result);
        }          
        return mianjiresult;
    }
              
    public int length(int a,int b,int c)
    {
        String temp = triangle(a, b, c);
        int result=0;
        if(!temp.equals("邊的值不在範圍內") &&!temp.equals("不構成三角形"))
        {
            result=a+b+c;
        }
        return result;
   
    }
}

結果:

技術分享

技術分享

技術分享

第4次作業類測試代碼+019+李悅洲