第4次作业类测试代码+063+陈彧

一、类图

二、代码

package swing;

import java.awt.EventQueue;
import java.awt.SystemColor;
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;

public class Swing {

	private JFrame frame;
	private JTextField textField_headphone;
	private JTextField textField_shell;
	private JTextField textField_protector;
	private JTextField textField_return;
	private JTextField textField_max;
	private JTextField textField_difference;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Swing window = new Swing();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public Swing() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setTitle("\u624B\u673A\u914D\u4EF6\u4F63\u91D1\u8BA1\u7B97\u7A0B\u5E8F");
		frame.getContentPane().setBackground(SystemColor.menu);
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JLabel lblNewLabel = new JLabel("\u8BF7\u8F93\u5165\u9500\u552E\u6570\u91CF\uFF1A");
		lblNewLabel.setBounds(10, 10, 131, 15);
		frame.getContentPane().add(lblNewLabel);
		
		JLabel label = new JLabel("\u8033\u673A\uFF1A");
		label.setBounds(10, 51, 46, 15);
		frame.getContentPane().add(label);
		
		JLabel label_1 = new JLabel("\u624B\u673A\u58F3\uFF1A");
		label_1.setBounds(142, 51, 57, 15);
		frame.getContentPane().add(label_1);
		
		JLabel lblNewLabel_1 = new JLabel("\u8D34\u819C\uFF1A");
		lblNewLabel_1.setBounds(285, 51, 57, 15);
		frame.getContentPane().add(lblNewLabel_1);
		
		textField_headphone = new JTextField();
		textField_headphone.setBounds(50, 48, 66, 21);
		frame.getContentPane().add(textField_headphone);
		textField_headphone.setColumns(10);
		
		textField_shell = new JTextField();
		textField_shell.setBounds(198, 48, 66, 21);
		frame.getContentPane().add(textField_shell);
		textField_shell.setColumns(10);
		
		textField_protector = new JTextField();
		textField_protector.setBounds(326, 48, 66, 21);
		frame.getContentPane().add(textField_protector);
		textField_protector.setColumns(10);
		
		JLabel label_2 = new JLabel("\u5E94\u8FD4\u8FD8\u7684\u4F63\u91D1\uFF1A");
		label_2.setBounds(10, 132, 106, 15);
		frame.getContentPane().add(label_2);
		
		textField_return = new JTextField();
		textField_return.setEditable(false);
		textField_return.setBounds(198, 129, 194, 21);
		frame.getContentPane().add(textField_return);
		textField_return.setColumns(10);
		
		JLabel label_3 = new JLabel("\u9500\u552E\u989D\u6700\u9AD8\u7684\u914D\u4EF6\uFF1A");
		label_3.setBounds(10, 165, 131, 15);
		frame.getContentPane().add(label_3);
		
		JLabel label_4 = new JLabel("\u9500\u552E\u914D\u4EF6\u6700\u591A\u4E0E\u6700\u5C11\u6570\u91CF\u76F8\u5DEE\uFF1A");
		label_4.setBounds(10, 198, 189, 15);
		frame.getContentPane().add(label_4);
		
		textField_max = new JTextField();
		textField_max.setEditable(false);
		textField_max.setBounds(198, 162, 194, 21);
		frame.getContentPane().add(textField_max);
		textField_max.setColumns(10);
		
		textField_difference = new JTextField();
		textField_difference.setEditable(false);
		textField_difference.setBounds(198, 195, 194, 21);
		frame.getContentPane().add(textField_difference);
		textField_difference.setColumns(10);
		
		JButton btnOk = new JButton("OK");
		btnOk.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int headphone = Commission.changeToInt(textField_headphone.getText());
				if(headphone < 0) {
					JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "出错", JOptionPane.ERROR_MESSAGE);
					return;
				}
				int protector=Commission.changeToInt(textField_protector.getText());
				if(protector < 0) {
					JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "出错", JOptionPane.ERROR_MESSAGE);
					return;
				}
				int shell=Commission.changeToInt(textField_shell.getText());
				if(shell < 0) {
					JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "出错", JOptionPane.ERROR_MESSAGE);
					return;
				}
				float returnAns=Commission.commission(headphone, shell, protector);
				String returnString=String.format("佣金金额:%.2f元", returnAns);
				textField_return.setText(returnString);
				String maxAns=Commission.mostSale(headphone, shell, protector);
				textField_max.setText(maxAns);
				int differenceAns=Commission.diffSale(headphone, shell, protector);
				String differenceString=String.format("%d", differenceAns);
				textField_difference.setText(differenceString);
			}
		});
		btnOk.setBounds(10, 87, 93, 23);
		frame.getContentPane().add(btnOk);
		
		JButton btnCancle = new JButton("Cancle");
		btnCancle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				textField_headphone.setText("");
				textField_protector.setText("");
				textField_shell.setText("");
				textField_return.setText("");
				textField_max.setText("");
				textField_difference.setText("");
			}
		});
		btnCancle.setBounds(299, 87, 93, 23);
		frame.getContentPane().add(btnCancle);
	}
}

  

package swing;

 
public class Commission{
    //String To Int
    public static int changeToInt(String number){
        int ans=0;
        try{
            ans = Integer.parseInt(number);
        }
        catch (Exception e){
            ans=-1;
            // TODO: handle exception
        }
        return ans;
    }
     
    //计算佣金
    public static float commission(int headphone, int shell, int protector){
        if(headphone < 0 || shell < 0 || protector < 0){
            return -1.0f;
        }
         
        float ans = 0.0f;
        long sum = 80 * headphone + 10 * shell + 8 * protector;
         
        if(sum < 1000){
            ans = sum * 0.1f;
        }
        else if(sum >= 1000 && sum <= 1800){
            ans = 100.0f + (sum - 1000) * 0.15f;
        }
        else{
            ans = (sum - 1800.0f) * 0.2f + 220.0f;
        }
         
        return ans;
    }
    
    //销售额最高的配件
    public static String mostSale(int headphone, int shell, int protector){
    	long headphoneSales = headphone * 80;
    	long shellSales = shell * 10;
    	long protectorSales = protector * 8;
    	String ans="";
    	if(headphoneSales >= shellSales && headphoneSales >= protectorSales){
        	ans+="耳机";
    	}
    	if(shellSales >= headphoneSales && shellSales >= protectorSales){
    		if(ans.equals("")){
    			ans+="手机壳";
    		}
    		else{
    			ans+="与手机壳";
    		}
    	}
    	if(protectorSales >= headphoneSales && protectorSales >= shellSales){
    		if(ans.equals("")){
    			ans+="贴膜";
    		}
    		else{
    			ans+="与贴膜";
    		}
    	}
    	return ans;
    }
    
    //销售配件最多与最少数量相差:
    public static int diffSale(int headphone, int shell, int protector){
    	int max=Math.max(Math.max(headphone, shell), protector);
    	int min=Math.min(Math.min(headphone, shell), protector);
    	return max-min;
    }
}

  三、界面

 

PS:第一次用JAVA写界面,根本不会做。拜访了很多大佬才了解了一点基础。感觉上了一门实际是JAVA课的软测课。

posted @ 2017-05-01 18:35  ChainYugi  阅读(337)  评论(0编辑  收藏  举报