Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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 resultText;
- // конструктор класса
- public Okno(){
- // setTitle - задаем заголовок главного окна
- setTitle("Калькулятор");
- // setBounds - установим размеры и коорд x, y - расположения окна на экране
- setBounds(10, 10, 800, 600);
- getContentPane().add(createPanel());
- // для правильного закрытия окна используем
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setVisible(true); // отображаем окно на экране
- }
- // универсальный метод который создает кнопку объект типа JButton
- public JButton createButton(String title) {
- // создаем кнопку - объект типа JButton
- JButton b = new JButton(title);
- // указываем обработчик событий для кнопки
- b.addActionListener(this);
- return b;
- }
- // метод создает панель и устанавливает элементы управления внутри данной панели
- public JPanel createPanel(){
- JPanel p = new JPanel();
- // создаем элемент управления типа JLabel - текст (заголовок)
- JLabel label = new JLabel("Результат: ");
- // используем метод add для добавление элемента в панель
- p.add(label);
- // JTextField - поле ввода (для ввода информации и отображения)
- resultText = new JTextField(20);
- // пример работы с объектом resultText
- // resultText.setText("HELLO");
- // String myText = resultText.getText();
- // System.out.println("myText=" + myText);
- p.add(resultText);
- // цифровые кнопки 0..9
- for(int i=0; i<=9; i++){
- JButton b = createButton(String.valueOf(i));
- p.add(b);
- }
- // 2) добавить кнопки: + - / * - используем метод createButton
- p.add(createButton("+"));
- p.add(createButton("-"));
- p.add(createButton("/"));
- p.add(createButton("*"));
- //
- p.add(createButton("="));
- p.add(createButton("C"));
- // 3) добавить кнопки: = - для выволнения вычисления
- // C - для очистки поля ввода
- // создаем кнопку и добавляем в панель
- JButton b1 = createButton("Выход");
- p.add(b1);
- return p;
- }
- // метод отвечает за обработку событий интерфейса
- // объект типа ActionEvent - событие
- @Override
- public void actionPerformed(ActionEvent e) {
- // выводим сообщение при вызове метода
- System.out.println("actionPerformed!");
- //
- String action = e.getActionCommand();
- System.out.println("action=" + action);
- // выполняем выход из программы если нажата кнопка Выход
- // сравнение объектов с помощью метода equals
- // || - логическое ИЛИ
- if(action.equals("Выход")){
- System.exit(0);
- } else if("C".equals(action)){
- System.out.println("Кнопка С");
- } else if("=".equals(action)){
- System.out.println("Кнопка =");
- } else if("+".equals(action) || "-".equals(action) || "*".equals(action) || "/".equals(action)){// + - * /
- System.out.println("Кнопка операции!!!");
- } else {
- System.out.println("Цифровая кнопка=" + action);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement