Программирование на языке Java


Модели обработки событий - часть 2


А вот и пример на обработку событий. Мы добавили объект Label к примеру с игрой в “пятнашки”, а также заместили метод action для того, чтобы обрабатывать события, возникающие при нажатии кнопок. Точно такой же механизм можно использовать для управления вводом через любой из подклассов Component.

/* <applet code = “EventDemo” width=200 height=200>

</applet>

*/

import java.awt.*;

import java.applet.*;

public class EventDemo extends Applet {

static final int n = 4;

Label lab = new Label("?", Label.CENTER);

public void init() {

setLayout(new GridLayout(n, n));

setFont(new Font("Helvetica", Font.BOLD, 24));

int width = Integer.parseInt(getParameter("width"));

int height = Integer.parseInt(getParameter("height"));

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

int k = i * n + j;

if (k > 0)

add(new Button("" + k));

}

}

lab.setFont(new Font("Helvetica", Font.ITALIC, 24));

add(lab);

}

public boolean action(Event e, Object o) {

if (o instanceof String) {

lab.setText((String) o);

}

return false;

} }

Поиграйте с этим примером – EventDemo.html.

Элементы и связанные с ними события

В таблице 5 для каждого элемента пакета AWT перечислены типы событий, которые он может порождать. В первом столбце таблицы указан тип элемента, а во втором — тип соответствующего ему события. Тип события представляет собой константу, которая записывается в переменную id объекта класса Event.

В столбцах с третьего по седьмой указано, устанавливаются ли значения переменных -when (время события), х (координата х курсора мыши), у (координата у курсора мыши), key (нажатая кнопка) и modifiers (специальные клавиши, которые нажаты при этом) для данного события. Если в столбце стоит точка, значит, событие устанавливает значение соответствующей переменной. В восьмом столбце объяснено, что порождает данное событие и приведено значение, которое записывается в переменной arg объекта класса Event.




- Начало -  - Назад -  - Вперед -