java计算器 图形用户界面 简化版

package com.rgy.entity;

import java.awt.*;
import java.awt.event.*;

@SuppressWarnings("serial")
public class Computer extends Frame implements ActionListener{
	private Panel panel_keys;
	private TextField text_show;
	private String str="";
	private double num_record=0;
	private int count_cut=0;
	private int count_multiplication=0;
	private int count_division=0;
	private int op=0;
	private Button button_num0;private Button button_num1;
	private Button button_num2;private Button button_num3;
	private Button button_num4;private Button button_num5;
	private Button button_num6;private Button button_num7;
	private Button button_num8;private Button button_num9;
	private Button button_division;
	private Button button_multiplication;
	private Button button_cut;
	private Button button_add;
	private Button button_equal;
	private Button button_point;
	
	public Computer(){
		super("计算器");
		this.setVisible(true);
		this.setBounds(500,250,300,250);
		
		panel_keys=new Panel();
		text_show=new TextField();
		text_show.setEditable(false);
		
		button_num0=new Button("0");button_num1=new Button("1");
		button_num2=new Button("2");button_num3=new Button("3");
		button_num4=new Button("4");button_num5=new Button("5");
		button_num6=new Button("6");button_num7=new Button("7");
		button_num8=new Button("8");button_num9=new Button("9");
		button_division=new Button("/");
		button_multiplication=new Button("*");
		button_cut=new Button("-");
		button_add=new Button("+");
		button_equal=new Button("=");
		button_point=new Button(".");
		
		this.add(text_show,BorderLayout.NORTH);
		this.add(panel_keys,BorderLayout.CENTER);
		
		panel_keys.add(button_num7);panel_keys.add(button_num8);panel_keys.add(button_num9);panel_keys.add(button_division);
		panel_keys.add(button_num4);panel_keys.add(button_num5);panel_keys.add(button_num6);panel_keys.add(button_multiplication);
		panel_keys.add(button_num1);panel_keys.add(button_num2);panel_keys.add(button_num3);panel_keys.add(button_cut);
		panel_keys.add(button_num0);panel_keys.add(button_point);panel_keys.add(button_equal);panel_keys.add(button_add);
		
		panel_keys.setLayout(new GridLayout(4,4));
		
		this.addWindowListener(new WinClose());
		button_num0.addActionListener(this);
		button_num1.addActionListener(this);
		button_num2.addActionListener(this);
		button_num3.addActionListener(this);
		button_num4.addActionListener(this);
		button_num5.addActionListener(this);
		button_num6.addActionListener(this);
		button_num7.addActionListener(this);
		button_num8.addActionListener(this);
		button_num9.addActionListener(this);
		button_division.addActionListener(this);
		button_multiplication.addActionListener(this);
		button_add.addActionListener(this);
		button_cut.addActionListener(this);
		button_equal.addActionListener(this);
		button_point.addActionListener(this);
	}
	
	//键盘事件监听
	public void actionPerformed(ActionEvent ev) {
		if(ev.getSource()==button_num0){
			str=text_show.getText()+"0";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num1){
			str=text_show.getText()+"1";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num2){
			str=text_show.getText()+"2";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num3){
			str=text_show.getText()+"3";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num4){
			str=text_show.getText()+"4";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num5){
			str=text_show.getText()+"5";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num6){
			str=text_show.getText()+"6";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num7){
			str=text_show.getText()+"7";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num8){
			str=text_show.getText()+"8";
			text_show.setText(str);
		}
		if(ev.getSource()==button_num9){
			str=text_show.getText()+"9";
			text_show.setText(str);
		}
		if(ev.getSource()==button_point){
			str=text_show.getText()+".";
			text_show.setText(str);
		}
		if(ev.getSource()==button_add){
			if(op==5){}
			else{
				num_record=num_record+Double.parseDouble(str);
			}
			str="";
			text_show.setText(str);
			op=1;
		}
		if(ev.getSource()==button_cut){
			if(op==5){}
			else{
				if(count_cut==0){
					num_record=Double.parseDouble(str);
					count_cut++;
				}
				else{
					num_record=num_record-Double.parseDouble(str);
				}
			}
			str="";
			text_show.setText(str);
			op=2;
		}
		if(ev.getSource()==button_multiplication){
			if(op==5){}
			else{
				if(count_multiplication==0){
					num_record=Double.parseDouble(str);
					count_multiplication++;
				}
				else{
					num_record=num_record*Double.parseDouble(str);
				}
			}
			str="";
			text_show.setText(str);
			op=3;
		}
		if(ev.getSource()==button_division){
			if(op==5){}
			else{
				if(count_division==0){
					num_record=Double.parseDouble(str);
					count_division++;
				}
				else{
					num_record=num_record/Double.parseDouble(str);
				}
			}
			str="";
			text_show.setText(str);
			op=4;
		}
		if(ev.getSource()==button_equal){
			if(op==1){
				num_record=num_record+Double.parseDouble(str);
			}
			if(op==2){
				num_record=num_record-Double.parseDouble(str);
			}
			if(op==3){
				num_record=num_record*Double.parseDouble(str);
			}
			if(op==4){
				num_record=num_record/Double.parseDouble(str);
			}
			
			if(num_record-(int)num_record==0){
				text_show.setText(""+(int)num_record);
			}
			else{
				text_show.setText(""+num_record);
			}
			op=5;
		}
	}
	
	//窗口事件监听
	public class WinClose implements WindowListener {
		public void windowOpened(WindowEvent e) {}
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
		public void windowClosed(WindowEvent e) {}
		public void windowIconified(WindowEvent e) {}
		public void windowDeiconified(WindowEvent e) {}
		public void windowActivated(WindowEvent e) {}
		public void windowDeactivated(WindowEvent e) {}
	}
}


package com.rgy.Test;

import com.rgy.entity.*;

public class Test {
	public static void main(String args[]){
		new Computer();
	}
}

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值