Java实现简单计算器的加减乘除功能

本文将介绍如何使用Java语言和AWT库开发一个简单的计算器应用程序,包括界面设计、按钮事件处理和基本数学运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package guiawt;

import java.awt.BorderLayout;
import java.awt.Button;

import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;



public class Calcuate extends WindowAdapter implements ActionListener 
{
	String s ;
	TextField t;
	double num1;
	double num2;
	int x;
	
	public void windowClosing(WindowEvent e)  {System.exit(0);}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getActionCommand().equals("C"))
		t.setText("");
		else if(e.getActionCommand().equals("+"))
		{
			s = t.getText();
			num1 = Double.parseDouble(s);
			t.setText("");
			x=0;
		}
		else if(e.getActionCommand().equals("-"))
		{
			s = t.getText();
			num1 = Double.parseDouble(s);
			t.setText("");
			x=1;
		}
		else if(e.getActionCommand().equals("*"))
	     {
	        	s=t.getText();
	        	num1=Double.parseDouble(s);
	        	t.setText("");
	        	x=2;
	      }
	     else if(e.getActionCommand().equals("%"))
	        {
	        	s=t.getText();
	        	num1=Double.parseDouble(s);
	        	t.setText("");
	        	x=3;
	        }
	     else if(e.getActionCommand().equals("="))
	     {
	    	 s = t.getText();
	    	 num2 = Double.parseDouble(s);
	    	 switch(x)
	    	 {
	    	 case  0 : t.setText("" + (num1 + num2));break;
	    	 case  1 : t.setText("" + (num1 - num2));break;
	    	 case  2 : t.setText("" + (num1 * num2));break;
	    	 case  3 : t.setText("" + (num1 % num2));break;
	    	 }
	    	
	     }
	     else if(e.getActionCommand().equals("."))
	     {
	    	 if(t.getText().trim().indexOf('.')!=-1){}
	    	 else
	    	 {
	    		 s = t.getText();
	    		 s = s + e.getActionCommand();
	    		 t.setText(s);
	    		 
	    	 }
	     }
		
	     else
	     {
	    	 String s = t.getText();
	    	 s = s + e.getActionCommand();
	    	 t.setText(s);
	     }
		
		
	}
	public Calcuate()
	{
		Frame f = new Frame("我的计算器");
				
		t = new TextField();
		f.add(t,BorderLayout.NORTH);
		f.setSize(300,270);
		Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
		
		f.addWindowListener(this);
		
		 b0= new Button("MC");
		 b1= new Button("MR");
		 b2= new Button("MS");
		 b3= new Button("M+");
		 b4= new Button("M-");
		 b5= new Button("<-");
		 b6= new Button("CE");
		 b7= new Button("C");
		 b8= new Button("+-");
		 b9= new Button("sqrt");
	     b10=new Button("+");
	     b11=new Button("-");
	     b12=new Button("*");
	     b13=new Button("/");
	     b14=new Button("%");
	     b15=new Button(".");
	     b16=new Button("1/x");
	     b17=new Button("=");
	     Button b[]=new Button[10];
	     for(int i=0;i<b.length;i++)
	 	    b[i]=new Button(""+i);
	     
	     
	     b[0].addActionListener(this);
	     b[1].addActionListener(this);
	      b[2].addActionListener(this);
	       b[3].addActionListener(this);
	        b[4].addActionListener(this);
	         b[5].addActionListener(this);
	          b[6].addActionListener(this);
	           b[7].addActionListener(this);
	            b[8].addActionListener(this);
	             b[9].addActionListener(this);
	             b7.addActionListener(this);
	             b10.addActionListener(this);
	             b11.addActionListener(this);
	             b12.addActionListener(this);
	             b14.addActionListener(this);
	             b17.addActionListener(this);
	             b15.addActionListener(this);
	     
	    
	       Panel p = new Panel();
	       p.setLayout(new GridLayout(5,5,5,5));
	       p.add(b0);p.add(b1);p.add(b2);p.add(b3);p.add(b4);
		    p.add(b5);p.add(b6);p.add(b7);p.add(b8);p.add(b9);
		    p.add(b[7]);p.add(b[8]);p.add(b[9]);p.add(b13);p.add(b14);
		    p.add(b[4]);p.add(b[5]);p.add(b[6]);p.add(b12);p.add(b16);
		    p.add(b[1]);p.add(b[2]);p.add(b[3]);p.add(b11);p.add(b10);
	     f.add(p,BorderLayout.CENTER);
	     
	     Panel p1 = new Panel();
	     p1.setLayout(new GridLayout(1,3,5,5));
	     p1.add(b[0]);p1.add(b15);p1.add(b17);
		 f.add(p1,BorderLayout.SOUTH);
		 
		 f.setVisible(true);
	}
	
	public static void main(String[] args)
	{
		Calcuate cc = new Calcuate();
		
	}
	
}	


java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //做复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许改变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值