sergAccount

Untitled

Nov 29th, 2020
481
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package calcapp;
  7.  
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import javax.swing.JButton;
  11. import javax.swing.JFrame;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JTextField;
  15.  
  16. public class Okno extends JFrame implements ActionListener {
  17.     //поле ввода
  18.     JTextField text;
  19.     Calc calc = new Calc();
  20.     // конструктор класса
  21.     public Okno() {
  22.         setTitle("Калькулятор");
  23.         setBounds(10, 10, 800, 600);
  24.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  25.         // add main panel
  26.         getContentPane().add(createPanel());
  27.         setVisible(true);
  28.     }
  29.     // метод для создания кнопки калькуляторы
  30.     public JButton createButton(String label) {
  31.         JButton b = new JButton(label);
  32.         // подключение обработчика событий
  33.         b.addActionListener(this);
  34.         return b;
  35.     }
  36.     //
  37.     public JPanel createPanel() {
  38.         JPanel p = new JPanel();
  39.         // JLabel отображает текст
  40.         JLabel label = new JLabel("Результат: ");
  41.         p.add(label);
  42.         // создаем поле ввода
  43.         text = new JTextField(20);
  44.         p.add(text);
  45.         // добавляем цифровые кнопки (10 кнопок) в панель
  46.         for (int i = 0; i < 10; i++) {
  47.              String bName = String.valueOf(i); // String.valueOf - метод для получения строки из числа
  48.              JButton b1 = createButton(bName);
  49.              p.add(b1);
  50.         }
  51.         // добавляем кнопки-операции: + - * /  
  52.         p.add(createButton("+"));
  53.         p.add(createButton("-"));
  54.         p.add(createButton("*"));
  55.         p.add(createButton("/"));
  56.         p.add(createButton("="));     // кнопка для вычисления рез-та расчета
  57.         p.add(createButton("C"));     // позволяет очистить поле ввода
  58.         p.add(createButton("Выход")); // выход из программы
  59.         return p;
  60.     }
  61.     @Override
  62.     public void actionPerformed(ActionEvent e) {
  63.         System.out.println("actionPerformed!!!");
  64.         String command = e.getActionCommand();
  65.         if("Выход".equals(command)){
  66.             System.exit(0); // System.exit - физич завершение
  67.         }else if("C".equals(command)){
  68.             // устанавливаем пустую строку в поле ввода
  69.             text.setText("");
  70.         }else if("=".equals(command)){
  71.             // получить второе число и вывести на экран
  72.             String v2Str = text.getText();
  73.             System.out.println("v2Str=" + v2Str);
  74.             double v2 = Double.valueOf(v2Str);
  75.            
  76.             // вычислить значение и установить в поле ввода
  77.             String resultStr = "RESULT";
  78.             text.setText(resultStr);
  79.             // || - позволяет проверить выполнение одного из условий
  80.         }else if("+".equals(command) || "-".equals(command) || "*".equals(command) || "/".equals(command)){
  81.             // получаем первое число в виде строки
  82.             String v1Str = text.getText();
  83.             System.out.println("v1Str=" + v1Str);
  84.             // получаем из строки число (значение типа double)
  85.             double v1 = Double.valueOf(v1Str);
  86.             calc.setV1(v1);
  87.             calc.setOperation(command);
  88.             text.setText("");
  89.         }else{            
  90.             System.out.println("NUMBER=" + command);
  91.             String oldText = text.getText();
  92.             System.out.println("oldText=" + oldText);
  93.             text.setText(oldText + command);
  94.         }
  95.     }
  96. }
  97.  
RAW Paste Data