Advertisement
EmreTech

Calculator now with a GUI

May 19th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.65 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.Dimension;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.ActionEvent;
  5. @SuppressWarnings("serial")
  6. public class MathGUI extends JFrame{
  7.     public String opreator;
  8.     private JTextArea textOut;
  9.     private JLabel lblError;
  10.     public MathGUI() {
  11.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  12.         setTitle("Calculator");
  13.         getContentPane().setLayout(null);
  14.  
  15.         textOut = new JTextArea();
  16.         textOut.setBounds(6, 6, 318, 105);
  17.         getContentPane().add(textOut);
  18.  
  19.         JButton btnPlus = new JButton("+");
  20.         btnPlus.addActionListener(new ActionListener() {
  21.             public void actionPerformed(ActionEvent e) {
  22.                 opreator = "+";
  23.                 try {
  24.                     String FirstNumberString = txtFirstNumber.getText();
  25.                     int FirstNumber = Integer.parseInt(FirstNumberString);
  26.                     String SecondNumberString = txtSecondNumber.getText();
  27.                     int SecondNumber = Integer.parseInt(SecondNumberString);
  28.                     doMath(FirstNumber, opreator, SecondNumber);
  29.                     textOut.setText("Answer: " + Final);
  30.                 } catch (Exception ex) {
  31.                     lblError.setText("Please use small numbers");
  32.                 }
  33.             }
  34.         });
  35.         btnPlus.setBounds(207, 123, 117, 29);
  36.         getContentPane().add(btnPlus);
  37.  
  38.         JButton btnMinus = new JButton("-");
  39.         btnMinus.addActionListener(new ActionListener() {
  40.             public void actionPerformed(ActionEvent e) {
  41.                 opreator = "-";
  42.                 try {
  43.                 String FirstNumberString = txtFirstNumber.getText();
  44.                 int FirstNumber = Integer.parseInt(FirstNumberString);
  45.                 String SecondNumberString = txtSecondNumber.getText();
  46.                 int SecondNumber = Integer.parseInt(SecondNumberString);
  47.                 doMath(FirstNumber, opreator, SecondNumber);
  48.                 textOut.setText("Answer: " + Final);
  49.                 } catch (Exception ey) {
  50.                     lblError.setText("Please use small numbers");
  51.                 }
  52.             }
  53.         });
  54.         btnMinus.setBounds(207, 164, 117, 29);
  55.         getContentPane().add(btnMinus);
  56.  
  57.         JButton btnMutiply = new JButton("*");
  58.         btnMutiply.addActionListener(new ActionListener() {
  59.             public void actionPerformed(ActionEvent e) {
  60.                 opreator = "*";
  61.                 try {
  62.                 String FirstNumberString = txtFirstNumber.getText();
  63.                 int FirstNumber = Integer.parseInt(FirstNumberString);
  64.                 String SecondNumberString = txtSecondNumber.getText();
  65.                 int SecondNumber = Integer.parseInt(SecondNumberString);
  66.                 doMath(FirstNumber, opreator, SecondNumber);
  67.                 textOut.setText("Answer: " + Final);
  68.                 } catch (Exception ez) {
  69.                     lblError.setText("Please use small numbers");
  70.                 }
  71.             }
  72.         });
  73.         btnMutiply.setBounds(207, 205, 117, 29);
  74.         getContentPane().add(btnMutiply);
  75.  
  76.         JButton btnDivide = new JButton("/");
  77.         btnDivide.addActionListener(new ActionListener() {
  78.             public void actionPerformed(ActionEvent e) {
  79.                 opreator = "/";
  80.                 try {
  81.                 String FirstNumberString = txtFirstNumber.getText();
  82.                 int FirstNumber = Integer.parseInt(FirstNumberString);
  83.                 String SecondNumberString = txtSecondNumber.getText();
  84.                 int SecondNumber = Integer.parseInt(SecondNumberString);
  85.                 doMath(FirstNumber, opreator, SecondNumber);
  86.                 textOut.setText("Answer: " + Final);
  87.                 } catch (Exception ea) {
  88.                     lblError.setText("Please use small numbers");
  89.                 }
  90.             }
  91.         });
  92.         btnDivide.setBounds(207, 246, 117, 29);
  93.         getContentPane().add(btnDivide);
  94.  
  95.         JButton btnPercentage = new JButton("%");
  96.         btnPercentage.addActionListener(new ActionListener() {
  97.             public void actionPerformed(ActionEvent e) {
  98.                 opreator = "%";
  99.                 try {
  100.                 String FirstNumberString = txtFirstNumber.getText();
  101.                 int FirstNumber = Integer.parseInt(FirstNumberString);
  102.                 String SecondNumberString = txtSecondNumber.getText();
  103.                 int SecondNumber = Integer.parseInt(SecondNumberString);
  104.                 doMath(FirstNumber, opreator, SecondNumber);
  105.                 textOut.setText("Answer: " + Final);
  106.                 } catch (Exception eb) {
  107.                     lblError.setText("Please use small numbers");
  108.                 }
  109.             }
  110.         });
  111.         btnPercentage.setBounds(207, 287, 117, 29);
  112.         getContentPane().add(btnPercentage);
  113.  
  114.         txtFirstNumber = new JTextField();
  115.         txtFirstNumber.setBounds(89, 123, 117, 26);
  116.         getContentPane().add(txtFirstNumber);
  117.         txtFirstNumber.setColumns(10);
  118.  
  119.         JLabel lblFirstNumber = new JLabel("First Number");
  120.         lblFirstNumber.setBounds(6, 128, 87, 16);
  121.         getContentPane().add(lblFirstNumber);
  122.  
  123.         JLabel lblSecondNumber = new JLabel("Second Number");
  124.         lblSecondNumber.setBounds(6, 156, 105, 16);
  125.         getContentPane().add(lblSecondNumber);
  126.  
  127.         txtSecondNumber = new JTextField();
  128.         txtSecondNumber.setBounds(109, 151, 97, 26);
  129.         getContentPane().add(txtSecondNumber);
  130.         txtSecondNumber.setColumns(10);
  131.  
  132.         lblError = new JLabel("");
  133.         lblError.setVerticalAlignment(SwingConstants.BOTTOM);
  134.         lblError.setHorizontalAlignment(SwingConstants.CENTER);
  135.         lblError.setBounds(6, 190, 189, 126);
  136.         getContentPane().add(lblError);
  137.     }
  138.     int Final = 0;
  139.     private JTextField txtFirstNumber;
  140.     private JTextField txtSecondNumber;
  141.  
  142.     public int doMath(int number1, String opreator, int number2) {
  143.         try {
  144.             switch (opreator) {
  145.             case "+":
  146.                 Final = number1 + number2;
  147.                 lblError.setText("");
  148.                 break;
  149.             case "-":
  150.                 Final = number1 - number2;
  151.                 lblError.setText("");
  152.                 break;
  153.             case "*":
  154.                 Final = number1 * number2;
  155.                 lblError.setText("");
  156.                 break;
  157.             case "/":
  158.                 Final = number1 / number2;
  159.                 lblError.setText("");
  160.                 break;
  161.             case "%":
  162.                 Final = number1 % number2;
  163.                 lblError.setText("");
  164.                 break;
  165.             default:
  166.                 lblError.setText("Error: had to do with opreator");
  167.             }
  168.         } catch (Exception e) {
  169.             lblError.setText("Please use small numbers");
  170.         }
  171.         return Final;
  172.     }
  173.  
  174.     public static void main(String[] args) {
  175.         MathGUI math = new MathGUI();
  176.         math.setSize(new Dimension(331,351));
  177.         math.setVisible(true);
  178.  
  179.  
  180.     }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement