sergAccount

Untitled

Nov 29th, 2020
451
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.     // конструктор класса
  20.     public Okno() {
  21.         setTitle("Калькулятор");
  22.         setBounds(10, 10, 800, 600);
  23.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.         // add main panel
  25.         getContentPane().add(createPanel());
  26.         setVisible(true);
  27.     }
  28.     // метод для создания кнопки калькуляторы
  29.     public JButton createButton(String label) {
  30.         JButton b = new JButton(label);
  31.         // подключение обработчика событий
  32.         b.addActionListener(this);
  33.         return b;
  34.     }
  35.     //
  36.     public JPanel createPanel() {
  37.         JPanel p = new JPanel();
  38.         // JLabel отображает текст
  39.         JLabel label = new JLabel("Результат: ");
  40.         p.add(label);
  41.         // создаем поле ввода
  42.         text = new JTextField(20);
  43.         p.add(text);
  44.         // добавляем цифровые кнопки (10 кнопок) в панель
  45.         for (int i = 0; i < 10; i++) {
  46.              String bName = String.valueOf(i); // String.valueOf - метод для получения строки из числа
  47.              JButton b1 = createButton(bName);
  48.              p.add(b1);
  49.         }
  50.         // добавляем кнопки-операции: + - * /  
  51.         p.add(createButton("+"));
  52.         p.add(createButton("-"));
  53.         p.add(createButton("*"));
  54.         p.add(createButton("/"));
  55.         p.add(createButton("="));     // кнопка для вычисления рез-та расчета
  56.         p.add(createButton("C"));     // позволяет очистить поле ввода
  57.         p.add(createButton("Выход")); // выход из программы
  58.         return p;
  59.     }
  60.     @Override
  61.     public void actionPerformed(ActionEvent e) {
  62.         System.out.println("actionPerformed!!!");
  63.         //
  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 resultStr = "RESULT";
  73.             text.setText(resultStr);
  74.             // || - позволяет проверить выполнение одного из условий
  75.         }else if("+".equals(command) || "-".equals(command) || "*".equals(command) || "/".equals(command)){
  76.             // получаем первое число в виде строки
  77.             String v1Str = text.getText();
  78.         }else{            
  79.             System.out.println("NUMBER=" + command);
  80.             String oldText = text.getText();
  81.             System.out.println("oldText=" + oldText);
  82.         }
  83.     }
  84. }
  85.  
RAW Paste Data