diff --git a/calculator using java b/calculator using java new file mode 100644 index 00000000..546d5efb --- /dev/null +++ b/calculator using java @@ -0,0 +1,166 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class Calculator { + private JFrame frame; + private JTextField textField; + private JButton[] numberButtons = new JButton[10]; + private JButton[] functionButtons = new JButton[8]; + private JButton addButton, subButton, mulButton, divButton, eqButton, clrButton; + private JPanel panel; + + private double num1, num2, result; + private char operator; + + public Calculator() { + frame = new JFrame("Calculator"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(300, 400); + frame.setLayout(null); + + textField = new JTextField(); + textField.setBounds(10, 10, 265, 30); + textField.setFont(new Font("Arial", Font.PLAIN, 20)); + textField.setEditable(false); + + addButton = new JButton("+"); + subButton = new JButton("-"); + mulButton = new JButton("*"); + divButton = new JButton("/"); + eqButton = new JButton("="); + clrButton = new JButton("C"); + + functionButtons[0] = addButton; + functionButtons[1] = subButton; + functionButtons[2] = mulButton; + functionButtons[3] = divButton; + functionButtons[4] = eqButton; + functionButtons[5] = clrButton; + + for (int i = 0; i < 6; i++) { + functionButtons[i].setFont(new Font("Arial", Font.PLAIN, 18)); + functionButtons[i].setBackground(Color.GRAY); + functionButtons[i].setFocusPainted(false); + } + + for (int i = 0; i < 10; i++) { + numberButtons[i] = new JButton(String.valueOf(i)); + numberButtons[i].setFont(new Font("Arial", Font.PLAIN, 18)); + numberButtons[i].setBackground(Color.WHITE); + numberButtons[i].setFocusPainted(false); + } + + clrButton.setBounds(10, 40, 50, 50); + divButton.setBounds(70, 40, 50, 50); + mulButton.setBounds(130, 40, 50, 50); + subButton.setBounds(190, 40, 50, 50); + + panel = new JPanel(); + panel.setBounds(10, 100, 265, 250); + panel.setLayout(new GridLayout(4, 4, 10, 10)); + panel.setBackground(Color.GRAY); + + panel.add(numberButtons[1]); + panel.add(numberButtons[2]); + panel.add(numberButtons[3]); + panel.add(addButton); + panel.add(numberButtons[4]); + panel.add(numberButtons[5]); + panel.add(numberButtons[6]); + panel.add(subButton); + panel.add(numberButtons[7]); + panel.add(numberButtons[8]); + panel.add(numberButtons[9]); + panel.add(mulButton); + panel.add(numberButtons[0]); + panel.add(clrButton); + panel.add(eqButton); + panel.add(divButton); + + frame.add(panel); + frame.add(clrButton); + frame.add(divButton); + frame.add(mulButton); + frame.add(subButton); + frame.add(addButton); + frame.add(eqButton); + frame.add(textField); + frame.setVisible(true); + + for (int i = 0; i < 10; i++) { + final int finalI = i; + numberButtons[i].addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textField.setText(textField.getText() + finalI); + } + }); + } + + addButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + num1 = Double.parseDouble(textField.getText()); + operator = '+'; + textField.setText(""); + } + }); + + subButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + num1 = Double.parseDouble(textField.getText()); + operator = '-'; + textField.setText(""); + } + }); + + mulButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + num1 = Double.parseDouble(textField.getText()); + operator = '*'; + textField.setText(""); + } + }); + + divButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + num1 = Double.parseDouble(textField.getText()); + operator = '/'; + textField.setText(""); + } + }); + + eqButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + num2 = Double.parseDouble(textField.getText()); + + switch (operator) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + result = num1 / num2; + break; + } + + textField.setText(String.valueOf(result)); + } + }); + + clrButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + textField.setText(""); + } + }); + } + + public static void main(String[] args) { + new Calculator(); + } +}