пятница, 20 октября 2017 г.

Java для начинающих. Слушатель

Файл first.java



import javax.swing.JFrame;

class first {
public static void main(String arg[]) {
Reader r = new Reader("Наша программа");
r.setVisible(true); // Делаем окно видими
r.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // То, как мы будем закрывать окно.
r.setSize(300, 200); // задаем размеры окна
r.setResizable(false); // запрещаем изменять размер окна
r.setLocationRelativeTo(null); // расположение окна по центру экрана

}

}

Файл Reader.java

import javax.swing.*; // импортируем JFrame
import java.awt.*;
import java.awt.event.*;

// Чтобы превратить класс Reader в окно, нужно наследовать все методы  JFrame
public class Reader extends JFrame{
JButton b1, b2; // кнопки
JLabel l1, l2, l3, l4; // лейблы
JTextField t1, t2; // текстовое поле

int i, k;
String a, b;

// вешаем слушатель на кнопку
eHandler handler = new eHandler();


// создадим конструктор
public Reader(String s) {
super(s); // Это будет заголовок JFrame
setLayout(new FlowLayout()); // установим раскладку для объектов в окне: построчное расположение

// Определим все кнопки и поля.
b1 = new JButton("Очистить"); // кнопка очищает поле ввода
b2 = new JButton("Подсчитать");
l1 = new JLabel("Введите первое число:");
l2 = new JLabel("Введите второе число:");
l3 = new JLabel("");
l4 = new JLabel("");
t1 = new JTextField(10);
t2 = new JTextField(10);

// Добавим все на экран.
add(b1);
add(b2);
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(l4);

b2.addActionListener(handler);
b1.addActionListener(handler);
}

public class eHandler implements ActionListener {
// этот метод вызывается, когда что-то происходит: движение мыши, нажатие клавиши и т.д.
public void actionPerformed(ActionEvent e) {
try {
// e.getSource() - место, где мы кликнули мышью
if(e.getSource() == b2) {
i = Integer.parseInt(t1.getText()); // i = тому, что введено в поле t1
k = Integer.parseInt(t2.getText());
i++;
k++;

// setText() отображает только переменные типа String
a = "Ваше первое число теперь равно " + i;
b = "Ваше второе число теперь равно " + k;
l3.setText(a);
l4.setText(b);
}

if(e.getSource()==b1) {
t1.setText(null);
t2.setText(null);
l3.setText("");
l4.setText("");
}
} catch(Exception ex) { JOptionPane.showMessageDialog(null, "Введите в поле число!"); }
}

}

}


Комментариев нет:

Отправить комментарий