Java實現簡單計算器的加減乘除功能
阿新 • • 發佈:2019-01-22
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(); } }