/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package calcapp; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Okno extends JFrame implements ActionListener { //поле ввода JTextField text; // конструктор класса public Okno() { setTitle("Калькулятор"); setBounds(10, 10, 800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // add main panel getContentPane().add(createPanel()); setVisible(true); } // метод для создания кнопки калькуляторы public JButton createButton(String label) { JButton b = new JButton(label); // подключение обработчика событий b.addActionListener(this); return b; } // public JPanel createPanel() { JPanel p = new JPanel(); // JLabel отображает текст JLabel label = new JLabel("Результат: "); p.add(label); // создаем поле ввода text = new JTextField(20); p.add(text); // добавляем цифровые кнопки (10 кнопок) в панель for (int i = 0; i < 10; i++) { String bName = String.valueOf(i); // String.valueOf - метод для получения строки из числа JButton b1 = createButton(bName); p.add(b1); } // добавляем кнопки-операции: + - * / p.add(createButton("+")); p.add(createButton("-")); p.add(createButton("*")); p.add(createButton("/")); p.add(createButton("=")); // кнопка для вычисления рез-та расчета p.add(createButton("C")); // позволяет очистить поле ввода p.add(createButton("Выход")); // выход из программы return p; } @Override public void actionPerformed(ActionEvent e) { System.out.println("actionPerformed!!!"); // String command = e.getActionCommand(); if("Выход".equals(command)){ System.exit(0); // System.exit - физич завершение }else if("C".equals(command)){ // устанавливаем пустую строку в поле ввода text.setText(""); }else if("=".equals(command)){ // вычислить значение и установить в поле ввода String resultStr = "RESULT"; text.setText(resultStr); // || - позволяет проверить выполнение одного из условий }else if("+".equals(command) || "-".equals(command) || "*".equals(command) || "/".equals(command)){ // получаем первое число в виде строки String v1Str = text.getText(); }else{ System.out.println("NUMBER=" + command); String oldText = text.getText(); System.out.println("oldText=" + oldText); } } }