Simple Calculator in Java
Here's the screenshot below:
It can only perform one operation at a time.
If you have any question about the code, just comment below. :)
It can only perform one operation at a time.
import java.lang.*; import java.awt.*; import java.awt.event.*; public class calculator extends Frame implements ActionListener { Button btn1 = new Button("1"); Button btn2 = new Button("2"); Button btn3 = new Button("3"); Button plus = new Button("+"); Button btn4 = new Button("4"); Button btn5 = new Button("5"); Button btn6 = new Button("6"); Button minus = new Button("-"); Button btn7 = new Button("7"); Button btn8 = new Button("8"); Button btn9 = new Button("9"); Button times = new Button("*"); Button btn_clr = new Button("C"); Button btn0 = new Button("0"); Button divide = new Button("/"); Button ekwals = new Button("="); TextField txt = new TextField(20); String str_number = ""; int operation = 0; double number1 = 0; double number2 = 0; double result = 0; String[] str = null; public calculator() { Panel base = new Panel(); Panel NumberPanel = new Panel(); base.setLayout(new BorderLayout()); NumberPanel.setLayout(new GridLayout(4,4)); NumberPanel.add(btn1); btn1.addActionListener(this); NumberPanel.add(btn2); btn2.addActionListener(this); NumberPanel.add(btn3); btn3.addActionListener(this); NumberPanel.add(plus); plus.addActionListener(this); NumberPanel.add(btn4); btn4.addActionListener(this); NumberPanel.add(btn5); btn5.addActionListener(this); NumberPanel.add(btn6); btn6.addActionListener(this); NumberPanel.add(minus); minus.addActionListener(this); NumberPanel.add(btn7); btn7.addActionListener(this); NumberPanel.add(btn8); btn8.addActionListener(this); NumberPanel.add(btn9); btn9.addActionListener(this); NumberPanel.add(times); times.addActionListener(this); NumberPanel.add(btn0); btn0.addActionListener(this); NumberPanel.add(btn_clr); btn_clr.addActionListener(this); NumberPanel.add(ekwals); ekwals.addActionListener(this); NumberPanel.add(divide); divide.addActionListener(this); txt.setEditable(false); txt.setBackground(Color.black); txt.setForeground(Color.green); base.add(NumberPanel,BorderLayout.CENTER); base.add(txt,BorderLayout.NORTH); add(base,BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { if(e.getSource()==btn1) { txt.setText("1"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn2) { txt.setText("2"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn3) { txt.setText("3"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn4) { txt.setText("4"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn5) { txt.setText("5"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn6) { txt.setText("6"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn7) { txt.setText("7"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn8) { txt.setText("8"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn9) { txt.setText("9"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==btn0) { txt.setText("0"); str_number+=txt.getText(); txt.setText(str_number); } else if(e.getSource()==plus) { if(operation==0 & str_number!="") { number1=Integer.parseInt(str_number); txt.setText("+"); str_number+=txt.getText(); txt.setText(str_number); operation=1; } else {txt.setText(str_number);} } else if(e.getSource()==minus) { if(operation==0 & str_number!="") { number1=Integer.parseInt(str_number); txt.setText("-"); str_number+=txt.getText(); txt.setText(str_number); operation=2; } else { txt.setText(str_number); } } else if(e.getSource()==times) { if(operation==0 & str_number!="") { number1=Integer.parseInt(str_number); txt.setText("*"); str_number+=txt.getText(); txt.setText(str_number); operation=3; } else { txt.setText(str_number); } } else if(e.getSource()==divide) { if(operation==0 & str_number!="") { number1=Integer.parseInt(str_number); txt.setText("/"); str_number+=txt.getText(); txt.setText(str_number); operation=4; } else { txt.setText(str_number); } } else if(e.getSource()==ekwals) { if(operation!=0 & str_number!="") { txt.setText("="); str_number+=txt.getText(); txt.setText(str_number); switch(operation) { case 1: { str = str_number.split("\\+"); number2=Integer.parseInt(str[1].replace("=","")); result=number1+number2; txt.setText(Double.toString(result)); break; } case 2: { str = str_number.split("\\-"); number2=Integer.parseInt(str[1].replace("=","")); result=number1-number2; txt.setText(Double.toString(result)); break; } case 3: { str = str_number.split("\\*"); number2=Integer.parseInt(str[1].replace("=","")); result=number1*number2; txt.setText(Double.toString(result)); break; } case 4: { str = str_number.split("\\/"); number2=Integer.parseInt(str[1].replace("=","")); result=number1/number2; txt.setText(Double.toString(result)); break; } } btn0.setEnabled(false); btn1.setEnabled(false); btn2.setEnabled(false); btn3.setEnabled(false); btn4.setEnabled(false); btn5.setEnabled(false); btn6.setEnabled(false); btn7.setEnabled(false); btn8.setEnabled(false); btn9.setEnabled(false); plus.setEnabled(false); minus.setEnabled(false); times.setEnabled(false); divide.setEnabled(false); ekwals.setEnabled(false); } else { txt.setText(""); } } else if(e.getSource()==btn_clr) { txt.setText(""); str_number = ""; operation = 0; number1 = 0; number2 = 0; result = 0; btn0.setEnabled(true); btn1.setEnabled(true); btn2.setEnabled(true); btn3.setEnabled(true); btn4.setEnabled(true); btn5.setEnabled(true); btn6.setEnabled(true); btn7.setEnabled(true); btn8.setEnabled(true); btn9.setEnabled(true); plus.setEnabled(true); minus.setEnabled(true); times.setEnabled(true); divide.setEnabled(true); ekwals.setEnabled(true); } } public static void main(String[] args) { calculator calc = new calculator(); calc.setVisible(true); calc.setSize(200,200); calc.setResizable(false); calc.setTitle("Calculator"); } }
If you have any question about the code, just comment below. :)