Advertisement
serg_specialist

Untitled

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