Advertisement
sergAccount

Untitled

Feb 6th, 2021
1,037
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.95 KB | None | 0 0
  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.     JTextField resultText;
  18.     // конструктор класса
  19.     public Okno(){
  20.         // setTitle - задаем заголовок главного окна
  21.         setTitle("Калькулятор");
  22.         // setBounds - установим размеры и коорд x, y - расположения окна на экране
  23.         setBounds(10, 10, 800, 600);    
  24.         getContentPane().add(createPanel());
  25.         // для правильного закрытия окна используем
  26.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27.         setVisible(true); // отображаем окно на экране
  28.     }    
  29.     // универсальный метод который создает кнопку объект типа JButton
  30.     public JButton createButton(String title) {
  31.         // создаем кнопку - объект типа JButton
  32.         JButton b = new JButton(title);
  33.         // указываем обработчик событий для кнопки
  34.         b.addActionListener(this);
  35.         return b;
  36.     }    
  37.     // метод создает панель и устанавливает элементы управления внутри данной панели
  38.     public JPanel createPanel(){
  39.         JPanel p = new JPanel();
  40.         // создаем элемент управления типа JLabel - текст (заголовок)
  41.         JLabel label = new JLabel("Результат: ");  
  42.         // используем метод add для добавление элемента в панель
  43.         p.add(label);
  44.         // JTextField - поле ввода (для ввода информации и отображения)
  45.         resultText = new JTextField(20);
  46.         // пример работы с объектом resultText
  47. //        resultText.setText("HELLO");
  48. //        String myText = resultText.getText();
  49. //        System.out.println("myText=" + myText);
  50.         p.add(resultText);
  51.         // цифровые кнопки 0..9
  52.         for(int i=0; i<=9; i++){
  53.             JButton b = createButton(String.valueOf(i));
  54.             p.add(b);
  55.         }        
  56.         // 2) добавить кнопки: + - / *  - используем метод createButton
  57.         p.add(createButton("+"));    
  58.         p.add(createButton("-"));    
  59.         p.add(createButton("/"));    
  60.         p.add(createButton("*"));            
  61.         //// 3) добавить кнопки: =    - для выволнения вычисления
  62.         //                     C    - для очистки поля ввода
  63.         p.add(createButton("="));    
  64.         p.add(createButton("C"));            
  65.         // создаем кнопку и добавляем в панель
  66.         JButton b1 = createButton("Выход");
  67.         p.add(b1);
  68.         return p;
  69.     }
  70.     // метод отвечает за обработку событий интерфейса
  71.     // объект типа ActionEvent - событие
  72.     @Override
  73.     public void actionPerformed(ActionEvent e) {
  74.         // выводим сообщение при вызове метода
  75.         System.out.println("actionPerformed!");
  76.         //
  77.         String action = e.getActionCommand();
  78.         System.out.println("action=" + action);
  79.         // выполняем выход из программы если нажата кнопка Выход
  80.         // сравнение объектов с помощью метода equals
  81.         // ||  - логическое ИЛИ
  82.         if(action.equals("Выход")){
  83.             System.exit(0);
  84.         } else if("C".equals(action)){
  85.             System.out.println("Кнопка С");
  86.             resultText.setText("");
  87.         } else if("=".equals(action)){
  88.             System.out.println("Кнопка =");
  89.         } else if("+".equals(action) || "-".equals(action) || "*".equals(action) || "/".equals(action)){// + - * /  
  90.             System.out.println("Кнопка операции!!!");
  91.         } else {            
  92.             //resultText.setText(action);
  93.             System.out.println("Цифровая кнопка=" + action);
  94.             // тек текст
  95.             String curText = resultText.getText();
  96.             //System.out.println("curText=" + curText);
  97.             // устанавливаем новый текст
  98.             resultText.setText(curText + action);
  99.         }            
  100.     }
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement