• File: Main_260224084623.java
  • Full Path: /home/lmnet/fm-site/files/JavaProgramming/JAVAPROGRAMS/Calculator/Calculator/Main_260224084623.java
  • Date Modified: 02/24/2026 8:46 AM
  • File size: 9.45 KB
  • MIME-type: text/plain
  • Charset: utf-8
 
Open Back
package Calculator;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;




public class Main{
    String input = "";
    public static void main(String[] args){
        Operator Operator = new Operator();
        Solve Solve = new Solve();
        Main obj = new Main();


        JFrame calc = new JFrame("Calculator");
        JTextArea hello = new JTextArea(1,1);
        calc.add(hello);

        calc.setSize(220, 420);
        calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        calc.setLayout(null);
        
        JButton buttonoutput = new JButton(obj.input);
        buttonoutput.setBounds(0, 0, 200, 70);
        calc.add(buttonoutput);

        JButton buttonAC = new JButton("AC");
        buttonAC.setBounds(0, 70, 50, 50);

        JButton buttonparentheses1 = new JButton("(");
        buttonparentheses1.setBounds(50, 70, 38, 50);
        JButton buttonparentheses2 = new JButton(")");
        buttonparentheses2.setBounds(75, 70, 38, 50);

        JButton buttonpercent = new JButton("%");
        buttonpercent.setBounds(100, 70, 50, 50);

        JButton buttondivide = new JButton("/");
        buttondivide.setBounds(150, 70, 50, 50);

        JButton button1 = new JButton("1");
        button1.setBounds(0, 120, 50, 50);
        JButton button2 = new JButton("2");
        button2.setBounds(50, 120, 50, 50);
        JButton button3 = new JButton("3");
        button3.setBounds(100, 120, 50, 50);
        JButton buttonmultiply = new JButton("x");
        buttonmultiply.setBounds(150, 120, 50, 50);

        JButton button4 = new JButton("4");
        button4.setBounds(0, 170, 50, 50);
        JButton button5 = new JButton("5");
        button5.setBounds(50, 170, 50, 50);
        JButton button6 = new JButton("6");
        button6.setBounds(100, 170, 50, 50);
        JButton buttonsubract = new JButton("-");
        buttonsubract.setBounds(150, 170, 50, 50);

        JButton button7 = new JButton("7");
        button7.setBounds(0, 220, 50, 50);
        JButton button8 = new JButton("8");
        button8.setBounds(50, 220, 50, 50);
        JButton button9 = new JButton("9");
        button9.setBounds(100, 220, 50, 50);
        JButton buttonadd = new JButton("+");
        buttonadd.setBounds(150, 220, 50, 50);
        

        JButton button0 = new JButton("0");
        button0.setBounds(0, 270, 50, 50);
        JButton buttondecimalpoint = new JButton(".");
        buttondecimalpoint.setBounds(50, 270, 50, 50);
        JButton buttonbackspace = new JButton("<<");
        buttonbackspace.setBounds(100, 270, 50, 50);
        JButton buttonequals = new JButton("=");
        buttonequals.setBounds(150, 270, 50, 50);


        calc.add(buttonAC);
        buttonAC.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        obj.input = "";
                        buttonoutput.setText(obj.input);
                    }
                });

        calc.add(buttonparentheses1);
        calc.add(buttonparentheses2);
        calc.add(buttonpercent);
        calc.add(buttondivide);
        calc.add(button1);
        calc.add(button2);
        calc.add(button3);
        calc.add(buttonmultiply);
        calc.add(button4);
        calc.add(button5);
        calc.add(button6);
        calc.add(buttonsubract);
        calc.add(button7);
        calc.add(button8);
        calc.add(button9);
        calc.add(buttonadd);

        //Numbers
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "1";
                buttonoutput.setText(obj.input);
            }
        });
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "2";
                buttonoutput.setText(obj.input);
            }
        });
        button3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "3";
                buttonoutput.setText(obj.input);
            }
        });
        button4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "4";
                buttonoutput.setText(obj.input);
            }
        });
        button5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "5";
                buttonoutput.setText(obj.input);
            }
        });
        button6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "6";
                buttonoutput.setText(obj.input);
            }
        });
        button7.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "7";
                buttonoutput.setText(obj.input);
            }
        });
        button8.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "8";
                buttonoutput.setText(obj.input);
            }
        });
        button9.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "9";
                buttonoutput.setText(obj.input);
            }
        });
        button0.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "0";
                buttonoutput.setText(obj.input);
            }
        });

        //Other
        buttondecimalpoint.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += ".";
                buttonoutput.setText(obj.input);
            }
        });
        buttonparentheses1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "(";
                buttonoutput.setText(obj.input);
            }
        });
        buttonparentheses2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += ")";
                buttonoutput.setText(obj.input);
            }
        });
        buttonpercent.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "%";
                buttonoutput.setText(obj.input);
            }
        });


        //Operators
        buttonadd.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "+";
                buttonoutput.setText(obj.input);
            }
        });
        buttonmultiply.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "x";
                buttonoutput.setText(obj.input);
            }
        });
        buttonsubract.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "-";
                buttonoutput.setText(obj.input);
            }
        });
        buttondivide.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                obj.input += "รท";
                buttonoutput.setText(obj.input);
            }
        });

        calc.add(button0);
        calc.add(buttondecimalpoint);

        //BackSpace
        calc.add(buttonbackspace);
        buttonbackspace.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        obj.input = obj.input.substring(0,obj.input.length()-1);
                        buttonoutput.setText(obj.input);
                    }
                });

        //Equal Button
        calc.add(buttonequals);
        calc.setVisible(true);
        buttonequals.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
        try {
            //MDAS
             String result = "";
            if (!((obj.input.contains("(")) || (obj.input.contains(")")))) {
                //MDAS
               result = Solve.MDAS(obj.input);
               obj.input = result;
               buttonoutput.setText(obj.input);
            }
            else {
                //PEMDAS
               result = Solve.PEMDAS(obj.input);
               obj.input = result;
               buttonoutput.setText(obj.input);
            }


            }catch(NumberFormatException error) {
                buttonoutput.setText("Error");
                System.out.println(error);
            }catch(NullPointerException error) {
                buttonoutput.setText("Error");
                System.out.println(error);
            }catch(ArrayIndexOutOfBoundsException error) {
                buttonoutput.setText("Error: "+error);
                System.out.println(error);
            }catch(Exception error) {
                buttonoutput.setText("Error: "+error);
                System.out.println(error);
            }
        }
        });    
    }
}