Facebook
From asdasd, 2 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 163
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5.  
  6. public class Calculator {
  7.     private JLabel screen;
  8.     private boolean start;
  9.     private String operator;
  10.     private double result;
  11.     public Calculator() {
  12.         operator = "=";
  13.         start = true;
  14.         JFrame frame = new JFrame();
  15.         screen = new JLabel("0",JLabel.RIGHT);
  16.         screen.setFont(new Font("Open Sans",Font.BOLD, 20));
  17.         frame.add(screen, BorderLayout.NORTH);
  18.         frame.add(buttonsPanel(),BorderLayout.CENTER);
  19.         frame.setSize(300, 300);
  20.         frame.setLocationRelativeTo(null);
  21.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22.         frame.setVisible(true);
  23.     }
  24.     private JPanel buttonsPanel(){
  25.         JPanel panel = new JPanel();
  26.         panel.setLayout(new GridLayout(4,4));
  27.         String buttons[] = {
  28.                 "7", "8", "9", "/",
  29.                 "4", "5", "6", "*",
  30.                 "1", "2", "3", "-",
  31.                 "0", ".", "=", "+"
  32.         };
  33.         for (int i = 0; i < buttons.length; i++) {
  34.             panel.add(addButton(buttons[i]));
  35.         }
  36.         return panel;
  37.     }
  38.     private JButton addButton(String btnName){
  39.         JButton btn = new JButton(btnName);
  40.         btn.setFont(new Font("Open Sans", Font.BOLD, 16));
  41.         btn.addActionListener(calcListener);
  42.         return btn;
  43.     }
  44.     private ActionListener calcListener = new ActionListener() {
  45.         @Override
  46.         public void actionPerformed(ActionEvent e) {
  47.             String v = ((JButton)e.getSource()).getText();
  48.             System.out.println(v);
  49.             if("/*+-=".indexOf(v) >= 0){
  50.                 calculate(v);
  51.             }else{
  52.                 insertNumber(v);
  53.             }
  54.         }
  55.     };
  56.     public void calculate(String s){
  57. //        System.out.println("calculate: " + s);
  58.         double num = Double.parseDouble(screen.getText());
  59.         if (operator.equals("=")) result = num;
  60.         if (operator.equals("=")) result += num;
  61.         if (operator.equals("=")) result -= num;
  62.         if (operator.equals("=")) result *= num;
  63.         if (operator.equals("=")) result /= num;
  64.  
  65.  
  66.         screen.setText("" + result);
  67.         operator = s;
  68.         start = true;
  69.     }
  70.     public void insertNumber(String s){
  71. //        System.out.println("insertNumber: " + s);
  72.         if(start){
  73.             screen.setText("");
  74.             start = false;
  75.         }
  76.         screen.setText(screen.getText() + s);
  77.     }
  78.  
  79.     public static void main(String[] args) {
  80.         Calculator calc = new Calculator();
  81.     }
  82. }
  83.  
  84.