⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.java

📁 一个计算器代码
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class calculator extends JFrame implements ActionListener,KeyListener
{
	JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;
	JButton b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;
	JTextField t;
	boolean empty=true;
	String sign=null;
	String temp=null;
	int key;

	public calculator()
	{
		super("计算器");
		setSize(400,500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		newpanel p=new newpanel();
		p.setLayout(null);
		getContentPane().add(p);
				
		Icon pic1=new ImageIcon("1.gif");
		Icon pic2=new ImageIcon("2.gif");
		Icon pic3=new ImageIcon("3.gif");
		Icon pic4=new ImageIcon("4.gif");
		Icon pic5=new ImageIcon("5.gif");
		Icon pic6=new ImageIcon("6.gif");
		Icon pic7=new ImageIcon("7.gif");
		Icon pic8=new ImageIcon("8.gif");
		Icon pic9=new ImageIcon("9.gif");
		Icon pic0=new ImageIcon("0.gif");
		Icon pic11=new ImageIcon("11.gif");
		Icon pic12=new ImageIcon("12.gif");
		Icon pic13=new ImageIcon("13.gif");
		Icon pic14=new ImageIcon("14.gif");
		Icon pic15=new ImageIcon("15.gif");
		Icon pic16=new ImageIcon("16.gif");
		Icon pic17=new ImageIcon("17.gif");
		Icon pic18=new ImageIcon("18.gif");
		Icon pic19=new ImageIcon("19.gif");
		Icon pic20=new ImageIcon("20.gif");
		Icon pic21=new ImageIcon("21.gif");
		Icon pic22=new ImageIcon("22.gif");
		Icon pic23=new ImageIcon("23.gif");
		Icon pic24=new ImageIcon("24.gif");
		Icon pic25=new ImageIcon("25.gif");
		Icon pic26=new ImageIcon("26.gif");

		b1=new JButton(pic1);
		b1.setBounds(30,347,60,40);
		b1.addActionListener(this);
		b1.addKeyListener(this);
		p.add(b1);

		b2=new JButton(pic2);
		b2.setBounds(102,347,60,40);
		b2.addActionListener(this);
		b2.addKeyListener(this);
		p.add(b2);

		b3=new JButton(pic3);
		b3.setBounds(174,347,60,40);
		b3.addActionListener(this);
		b3.addKeyListener(this);
		p.add(b3);

		b4=new JButton(pic4);
		b4.setBounds(30,297,60,40);
		b4.addActionListener(this);
		b4.addKeyListener(this);
		p.add(b4);

		b5=new JButton(pic5);
		b5.setBounds(102,297,60,40);
		b5.addActionListener(this);
		b5.addKeyListener(this);
		p.add(b5);

		b6=new JButton(pic6);
		b6.setBounds(174,297,60,40);
		b6.addActionListener(this);
		b6.addKeyListener(this);
		p.add(b6);

		b7=new JButton(pic7);
		b7.setBounds(30,247,60,40);
		b7.addActionListener(this);
		b7.addKeyListener(this);
		p.add(b7);

		b8=new JButton(pic8);
		b8.setBounds(102,247,60,40);
		b8.addActionListener(this);
		b8.addKeyListener(this);
		p.add(b8);

		b9=new JButton(pic9);
		b9.setBounds(174,247,60,40);
		b9.addActionListener(this);
		b9.addKeyListener(this);
		p.add(b9);

		b0=new JButton(pic0);
		b0.setBounds(30,397,60,40);
		b0.addActionListener(this);
		b0.addKeyListener(this);
		p.add(b0);

		b11=new JButton(pic11);
		b11.setBounds(102,397,60,40);
		b11.addActionListener(this);
		b11.addKeyListener(this);
		p.add(b11);
		
		b12=new JButton(pic12);
		b12.setBounds(174,397,60,40);
		b12.addActionListener(this);
		b12.addKeyListener(this);
		p.add(b12);

		b13=new JButton(pic13);
		b13.setBounds(246,347,60,92);
		b13.addActionListener(this);
		b13.addKeyListener(this);
		p.add(b13);

		b14=new JButton(pic14);
		b14.setBounds(318,397,60,40);
		b14.addActionListener(this);
		b14.addKeyListener(this);
		p.add(b14);
		
		b15=new JButton(pic15);
		b15.setBounds(318,347,60,40);
		b15.addActionListener(this);
		b15.addKeyListener(this);
		p.add(b15);

		b16=new JButton(pic16);
		b16.setBounds(246,297,60,40);
		b16.addActionListener(this);
		b16.addKeyListener(this);
		p.add(b16);

		b17=new JButton(pic17);
		b17.setBounds(318,297,60,40);
		b17.addActionListener(this);
		b17.addKeyListener(this);
		p.add(b17);

		b18=new JButton(pic18);
		b18.setBounds(246,247,60,40);
		b18.addActionListener(this);
		b18.addKeyListener(this);
		p.add(b18);

		b19=new JButton(pic19);
		b19.setBounds(318,247,60,40);
		b19.addActionListener(this);
		b19.addKeyListener(this);
		p.add(b19);
		
		b20=new JButton(pic20);
		b20.setBounds(30,212,60,30);
		b20.addActionListener(this);
		b20.addKeyListener(this);
		p.add(b20);

		b21=new JButton(pic21);
		b21.setBounds(102,212,60,30);
		b21.addActionListener(this);
		b21.addKeyListener(this);
		p.add(b21);

		b22=new JButton(pic22);
		b22.setBounds(174,212,60,30);
		b22.addActionListener(this);
		b22.addKeyListener(this);
		p.add(b22);

		b23=new JButton(pic23);
		b23.setBounds(246,212,60,30);
		b23.addActionListener(this);
		b23.addKeyListener(this);
		p.add(b23);

		b24=new JButton(pic24);
		b24.setBounds(318,212,60,30);
		b24.addActionListener(this);
		b24.addKeyListener(this);
		p.add(b24);

		b25=new JButton(pic25);
		b25.setBounds(246,172,60,30);
		b25.addActionListener(this);
		b25.addKeyListener(this);
		p.add(b25);

		b26=new JButton(pic26);
		b26.setBounds(318,172,60,30);
		b26.addActionListener(this);
		b26.addKeyListener(this);
		p.add(b26);

		t=new JTextField(13);
		t.setHorizontalAlignment(JTextField.RIGHT);
		t.setBackground(new Color(175,190,182));
		Font font=new Font("DigifaceWide",Font.PLAIN,32);
		t.setFont(font);
		t.setEditable(false);
		t.setText("0");
		t.setBounds(45,63,310,62);
		t.addKeyListener(this);
		p.add(t);
		
		setVisible(true);
	}
	public void actionPerformed(ActionEvent e)
	{
		Object bobj=e.getSource();
		if (bobj==b1)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("1");return;}t.setText(t.getText()+"1");}
			else{t.setText("1");}
			empty=false;
			return;
		}
		if (bobj==b2)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("2");return;}t.setText(t.getText()+"2");}
			else{t.setText("2");}
			empty=false;
			return;
		}
		if (bobj==b3)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("3");return;}t.setText(t.getText()+"3");}
			else{t.setText("3");}
			empty=false;
			return;
		}
		if (bobj==b4)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("4");return;}t.setText(t.getText()+"4");}
			else{t.setText("4");}
			empty=false;
			return;
		}
		if (bobj==b5)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("5");return;}t.setText(t.getText()+"5");}
			else{t.setText("5");}
			empty=false;
			return;
		}
		if (bobj==b6)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("6");return;}t.setText(t.getText()+"6");}
			else{t.setText("6");}
			empty=false;
			return;
		}
		if (bobj==b7)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("7");return;}t.setText(t.getText()+"7");}
			else{t.setText("7");}
			empty=false;
			return;
		}
		if (bobj==b8)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("8");return;}t.setText(t.getText()+"8");}
			else{t.setText("8");}
			empty=false;
			return;
		}
		if (bobj==b9)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("9");return;}t.setText(t.getText()+"9");}
			else{t.setText("9");}
			empty=false;
			return;
		}
		if (bobj==b0)
		{
			if (t.getText().equals("0"))return;
			if (!empty){t.setText(t.getText()+"0");}
			else{t.setText("0");}
			empty=false;
			return;
		}
		if (bobj==b11)
		{
			if(t.getText().indexOf(".")!=-1)
			{
				float d=Float.parseFloat(t.getText());
				d=d*(-1);
				t.setText(String.valueOf(d));
			}
			else
			{
				int i=Integer.parseInt(t.getText());
				i=i*(-1);
				t.setText(String.valueOf(i));
			}
		}		
		if (bobj==b12)
		{
			if (t.getText().indexOf(".") != -1)return;
			if (!empty && t.getText()!="")
			{
				t.setText(t.getText()+".");
			}
			else
			{
				t.setText("0.");
			}
			empty=false;
		}
		if (bobj==b13)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="+";
			temp=t.getText();
			empty=true;
		}
		if (bobj==b14)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="=";
			temp=t.getText();
			empty=true;
		}
		if (bobj==b15)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="/";
			temp=t.getText();
			empty=true;
		}
		if (bobj==b16)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="-";
			temp=t.getText();
			empty=true;
		}
		if (bobj==b17)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="*";
			temp=t.getText();
			empty=true;
		}
		if (bobj==b18)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="%";
			temp=t.getText();
			empty=true;
		}
		if (bobj==b19)
		{
			sign="sqrt";
			temp=t.getText();
			result(e);
			empty=true;
		}
		if (bobj==b23)
		{
			if (t.getText().equals(""))return;
			if (t.getText().length()>1)
			{
				t.setText(t.getText().substring(0,(t.getText().length()-1)));
				
			}
			else
			{t.setText("0");empty=true;}
		}

		if (bobj==b24)
		{
			sign="1/x";
			temp=t.getText();
			result(e);
			empty=true;
		}
		if (bobj==b25)
		{
			t.setText("0");
			empty=true;
		}

		if (bobj==b26)
		{
			t.setText("0");
			empty=true;
			sign=null;
			temp=null;
		}
	}
	public void result(AWTEvent e)
	{
		float num_last=0;
		float num_now=0;
		try{
		num_last=Float.parseFloat(temp);
		num_now=Float.parseFloat(t.getText());}
		catch(NumberFormatException ne)
		{
			sign=null;
			temp=null;
			t.setText("Error");
			empty=true;
		}

		if (sign==null || temp==null || t.getText().equals(""))
		{
			empty=true;return;
		}
		if (sign.equals("+"))
		{
			int num=(int) (num_last+num_now);
			if (num==num_last+num_now){t.setText(String.valueOf(num));}
			else{t.setText(String.valueOf(num_last+num_now));}
		}
		if (sign.equals("-"))
		{
			int num=(int)(num_last-num_now);
			if (num==num_last-num_now){t.setText(String.valueOf(num));}
			else{t.setText(String.valueOf(num_last-num_now));}
		}
		if (sign.equals("*"))
		{
			int num=(int)(num_last*num_now);
			if (num==num_last*num_now){t.setText(String.valueOf(num));}
			else{t.setText(String.valueOf(num_last*num_now));}
		}
		if (sign.equals("/"))
		{
			if (num_now==0){t.setText("Error");}
			else
			{
				int num=(int)(num_last/num_now);
				if (num==num_last/num_now){t.setText(String.valueOf(num));}
				else{t.setText(String.valueOf(num_last/num_now));}
			}
		}
		if (sign.equals("%"))
		{
			int i1=Integer.parseInt(temp);
			int i2=Integer.parseInt(t.getText());
			if (i2==0){t.setText("Error");}
			else
			{
				int i3=(int)(i1/i2);
				int i4=i1-(i2*i3);
				t.setText(String.valueOf(i4));
			}
		}
		if (sign.equals("sqrt"))
		{
			if (t.getText().equals(""))return;
			if (num_last>=0)
			{
				int num=(int)(Math.sqrt(num_last));
				if (num==Math.sqrt(num_last))
				{t.setText(String.valueOf(num));}
				else{t.setText(String.valueOf(Math.sqrt(num_last)));}
			}
			if (num_last<0){t.setText("Error");}
		}
		if (sign.equals("1/x"))
		{
			if (t.getText().equals(""))return;
			if (num_last==0){t.setText("Error");}
			else
			{
				int num=(int)(1/num_last);
				if (num==1/num_last)
				{t.setText(String.valueOf(num));}
				else{t.setText(String.valueOf(1/num_last));}
			}
		}
		sign=null;
		empty=true;
	}
	
	public void keyPressed(KeyEvent e)
	{
		key=e.getKeyCode();
		if (key==KeyEvent.VK_NUMPAD0 || key==KeyEvent.VK_0)
		{
			if (t.getText().equals("0"))return;
			if (!empty){t.setText(t.getText()+"0");}
			else{t.setText("0");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD1 || key==KeyEvent.VK_1)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("1");return;}t.setText(t.getText()+"1");}
			else{t.setText("1");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD2 || key==KeyEvent.VK_2)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("2");return;}t.setText(t.getText()+"2");}
			else{t.setText("2");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD3 || key==KeyEvent.VK_3)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("3");return;}t.setText(t.getText()+"3");}
			else{t.setText("3");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD4 || key==KeyEvent.VK_4)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("4");return;}t.setText(t.getText()+"4");}
			else{t.setText("4");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD5 || key==KeyEvent.VK_5)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("5");return;}t.setText(t.getText()+"5");}
			else{t.setText("5");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD6 || key==KeyEvent.VK_6)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("6");return;}t.setText(t.getText()+"6");}
			else{t.setText("6");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD7 || key==KeyEvent.VK_7)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("7");return;}t.setText(t.getText()+"7");}
			else{t.setText("7");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD8 || key==KeyEvent.VK_8)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("8");return;}t.setText(t.getText()+"8");}
			else{t.setText("8");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_NUMPAD9 || key==KeyEvent.VK_9)
		{
			if (!empty){if (t.getText().equals("0")){t.setText("9");return;}t.setText(t.getText()+"9");}
			else{t.setText("9");}
			empty=false;
			return;
		}
		if (key==KeyEvent.VK_PERIOD || key==KeyEvent.VK_DECIMAL)
		{
			if (t.getText().indexOf(".") != -1)return;
			if (!empty && t.getText()!="")
			{
				t.setText(t.getText()+".");
			}
			else
			{
				t.setText("0.");
			}
			empty=false;
		}
		if (key==KeyEvent.VK_ADD)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="+";
			temp=t.getText();
			empty=true;
		}
		if (key==KeyEvent.VK_MINUS || key==KeyEvent.VK_SUBTRACT)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="-";
			temp=t.getText();
			empty=true;
		}
		if (key==KeyEvent.VK_MULTIPLY)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="*";
			temp=t.getText();
			empty=true;
		}
		if (key==KeyEvent.VK_DIVIDE)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="/";
			temp=t.getText();
			empty=true;
		}
		if (key==KeyEvent.VK_ENTER)
		{
			if (sign!=null)
			{
				result(e);
			}
			sign="=";
			temp=t.getText();
			empty=true;
		}
		if (key==KeyEvent.VK_ESCAPE)
		{
			t.setText("0");
			empty=true;
			sign=null;
			temp=null;
		}
		if (key==KeyEvent.VK_BACK_SPACE)
		{
			if (t.getText().equals(""))return;
			if (t.getText().length()>1)
			{
				t.setText(t.getText().substring(0,(t.getText().length()-1)));
				
			}
			else
			{t.setText("0");empty=true;}
		}
		
	}
	public void keyReleased(KeyEvent e){}
	public void keyTyped(KeyEvent e){}

	class newpanel extends JPanel
	{
		public newpanel(){}
		public void paintComponent(Graphics g)
		{
			int x=0,y=0;
			ImageIcon icon=new ImageIcon("calculator.jpg");
			g.drawImage(icon.getImage(),x,y,400,480,this);
		}
	}
	public static void main(String args[])
	{
		new calculator();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -