This article describes the implementation of a simple calculator class in Java. Share it for your reference. The details are as follows:
package chap;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt .event.ActionEvent;import java.awt.event.ActionListener;import java.text.DecimalFormat;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;publ ic class Calculator { private JFrame frame; private JPanel panel,panelKeys,panelKeys_up, panelKeys_down; private JTextField textComputer;//Computing area private JButton buttonBk, buttonC;//Backspace key and clear key private JButton button[];//Number key group private JButton buttonDot, buttonAddSub, buttonAdd, buttonSub, buttonMul, buttonDiv, button1, button2, button3, buttonEqual; private double result;// Calculation result private final short ADD = 1; private final short SUB = 2; private final short MUL = 3; p rivate final short DIV = 4; private short operator = -1 ;//Operator public Calculator(){ frame = new JFrame("Computer"); frame.setSize(400, 250); panel = new JPanel();//Global panel panel.setVisible(true); frame. setVisible (true); frame.getContentPane().add(panel); ActionListener listener = new ComputerActionListener();//Key Listener//Computer area textComputer = new JTextField(15); text Computer.setText(""); textComputer. setEditable(false); textComputer.setBackground(new Color(255,255,255)); //The upper part of the function key panelKeys_up = new JPanel(); panelKeys_up.setLayout(new Fl owLayout(FlowLayout.RIGHT)); buttonBk = new JButton("Backspace "); buttonBk.setForeground(new Color(255,0,0)); buttonC = new JButton("C"); buttonC.setForeground(new Color(255,0,0)); buttonBk.addActionL istener(listener); buttonC.addActionListener(listener); panelKeys_up.add(buttonBk); panelKeys_up.add(buttonC); //The lower part of the function key panelKeys_down = new JPanel(); panelKeys_down. setLayout(new GridLayout(4,5)); button = new JButton[10]; for(int i = 0;i < button.length;i++){ button[i] = new JButton(Integer.toString(i)); button[i].setForeground(new Color(255, 0,0)); } buttonAddSub = new JButton("+/-"); buttonAddSub.setForeground(new Color(255,0,0)); buttonAdd = new JButton("+"); buttonAdd.set Foreground(new Color (255,0,0)); buttonSub = new JButton("-"); buttonSub.setForeground(new Color(255,0,0)); buttonMul = new JButton("*"); buttonMul.setForegro und(new Color (255,0,0)); buttonDiv = new JButton("/"); buttonDiv.setForeground(new Color(255,0,0)); button1 = new JButton(); button2 = new JButton(); but ton3 = new JButton(); button1.setForeground(new Color(255,0,0)); button2.setForeground(new Color(255,0,0)); button3.setForeground(new Color(255,0,0)); button3.setForeground(new Color(255,0 ,0)); buttonEqual = new JButton("="); buttonEqual.setForeground(new Color(255,0,0)); buttonAddSub.addActionListener(listener); buttonAdd.addActionL istener(listener); buttonSub.addActionListener(listener); buttonMul.addActionListener( listener); buttonDiv.addActionListener(listener); buttonEqual.addActionListener(listener); for(int i = 0 ; i <=9 ; i++){ button[i].addActionListener(list ener); } for(int i = 0; i <=9 ; i++){ panelKeys_down.add(button[i]); } panelKeys_down.add(buttonAddSub); panelKeys_down.add(buttonAdd); panelKeys_down.add(butt onSub); panelKeys_down.add(buttonMul); panelKeys_down.add (buttonDiv); panelKeys_down.add(buttonEqual); panel.setLayout(new BorderLayout()); panel.add(textComputer,BorderLayout.NORTH); panel.add(panelKe ys_up,BorderLayout.CENTER); panel.add(panelKeys_down,BorderLayout .SOUTH); } class ComputerActionListener implements ActionListener{ @Override public void actionPerformed(ActionEvent event) { // TODO Auto-generated method s tub Object keyButton = event.getSource(); String text = textComputer.getText(); DecimalFormat df = new DecimalFormat("0.#############"); //Backspace if(keyButton == buttonBk && text.length() > 0){ textComputer.setText(text.substring(0,text. length()-1)); } //C key if(keyButton == buttonC){ result = 0; textComputer.setText(""); } //Number keys for(int i=0;i<10;i++ ){ if(keyButton == button[i]){ textComputer.setText(text+i); } } if(keyButton == buttonAdd){ operator = 1; } if(keyButton == buttonSub) { operator = 2; } if(keyButton == buttonMul){ operator = 3; } if(keyButton == buttonDiv){ operator = 4; } //Symbol key if(keyButton == buttonAdd || keyButton == butt onSub || keyButton == buttonMul || keyButton == buttonDiv || keyButton == buttonEqual){ switch(operator){ case ADD: result += Double.parseDouble(text); break; case SUB: result - =Double.parseDouble(text); break; case MUL: result *=Double.parseDouble(text); break; case DIV: result /=Double.parseDouble(text); break; default: result = Double.parseDouble(text); } textComputer.setText(""); } if( keyButton == buttonEqual){ textComputer.setText(String.valueOf(result)); } } } public static void main(String args[]){ new Calculator(); } }I hope this article will be helpful to everyone's Java programming.