Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В таблице 5 для каждого элемента пакета AWT перечислены типы событий, которые он может порождать. В первом столбце таблицы указан тип элемента, а во втором — тип соответствующего ему события. Тип события представляет собой константу, которая записывается в переменную id объекта класса Event.
В столбцах с третьего по седьмой указано, устанавливаются ли значения переменных -when (время события), х (координата х курсора мыши), у (координата у курсора мыши), key (нажатая кнопка) и modifiers (специальные клавиши, которые нажаты при этом) для данного события. Если в столбце стоит точка, значит, событие устанавливает значение соответствующей переменной. В восьмом столбце объяснено, что порождает данное событие и приведено значение, которое записывается в переменной arg объекта класса Event.
События, перечисленные для элементов класса Component, применимы ко всем подклассам класса java.awt. Component, а события, приведенные для элементов класса window, относятся как к подклассам класса window, так и к классам Dialog и Frame.
Таблица 5. Элементы AWT и события Java 1.0, которые порождаются ими
Элемент | Тип события (id) | w h e n | x | y | k e y | m о d s | Смысл события | Тип и значение переменной arg | |||||||||||
Button (кнопка) | ACTION_EVENT | Пользователь нажал кнопку | String: обозначение кнопки | ||||||||||||||||
Checkbox (флажок) | ACTION_EVENT | Пользователь активизировал флажок | Boolean: новое состояние флажка | ||||||||||||||||
Choice (список выбора) | ACTION_EVENT | Пользователь выбрал элемент списка | String: обозначение выбранного элемента | ||||||||||||||||
Element (элемент) | GOT_FOCUS | Получение фокуса ввода | не используется | ||||||||||||||||
Element (элемент) | KEY_ACTION | * | * | * | * | * | Пользователь нажал функциональную клавишу | не используется, поскольку key содержит константу клавиши | |||||||||||
Element (элемент) | KEY_ACTION_ RELEASE | * | * | * | * | * | Пользователь отпустил функциональную клавишу | не используется, поскольку key содержит константу клавиши | |||||||||||
Element (элемент) | KEY_PRESS | * | * | * | * | * | Пользователь нажал клавишу | не используется, поскольку key содержит ASCII-код клавиши | |||||||||||
Element (элемент) | KEY_RELEASE | * | * | * | * | * | Пользователь отпустил клавишу | не используется, поскольку key содержит ASCII-код клавиши | |||||||||||
Element (элемент) | LOST_FOCUS | Потеря фокуса ввода | не используется | ||||||||||||||||
Element (элемент) | MOUSE_ENTER | * | * | * | Курсор мыши попал в область объекта класса Component | не используется | |||||||||||||
Element (элемент) | MOUSE_EXIT | * | * | * | Курсор мыши вышел из области объекта класса Component | не используется | |||||||||||||
Element (элемент) | MOUSE_D0WN | * | * | * | * | Пользователь нажал кнопку мыши | не используется | ||||||||||||
Element (элемент) | MOUSE_UP | * | * | * | * | Пользователь отпустил кнопку мыши | не используется | ||||||||||||
Element (элемент) | MOUSE_MOVE | * | * | * | * | Пользователь переместил мышь | не используется | ||||||||||||
Element (элемент) | MOUSE_DRAG | * | * | * | * | Пользователь переместил мышь при нажатой кнопке мыши | не используется | ||||||||||||
List (список) | ACTION_EVENT | Пользователь выполнил двойной щелчок мыши на элементе списка | String: обозначение выбранного элемента | ||||||||||||||||
List (список) | LIST_SELECT | Пользователь выбрал элемент списка | Integer: индекс выбранного элемента | ||||||||||||||||
List (список) | LIST_DESELECT | Пользователь убрал выделение с определенного элемента | Integer: индекс элемента | ||||||||||||||||
Menu Item (меню) | ACTION_EVENT | Пользователь выбрал пункт меню | String: обозначение выбранного пункта | ||||||||||||||||
Scrollbar (полоса прокрутки) | SCROLL_LINE_UP | Пользователь осуществил прокрутку вверх на строку | Integer: позиция, до которой осуществляется прокрутка | ||||||||||||||||
Scrollbar (полоса прокрутки) | SCROLL_LINE_ DOWN | Пользователь осуществил прокрутку вниз на строку | Integer: позиция, до которой осуществляется прокрутка | ||||||||||||||||
Scrollbar (полоса прокрутки) | SCROLL_PAGE_UP | Пользователь осуществил прокрутку вверх на страницу | Integer: позиция, до которой осуществляется прокрутка | ||||||||||||||||
Scrollbar (полоса прокрутки) | SCROLL_PAGE_ DOWN | Пользователь осуществил прокрутку вниз на страницу | Integer: позиция, до которой осуществляется прокрутка | ||||||||||||||||
Scrollbar (полоса прокрутки) | SCROLL_ ABSOLUTE | Пользователь переместил ползунок полосы прокрутки | Integer: позиция, до которой осуществляется прокрутка | ||||||||||||||||
Text Field (текст) | ACTION_EVENT | Пользователь ввел текст и нажал [Return]. | String: введенный текст | ||||||||||||||||
Window (окно) | WINDOW_ DESTROY | Окно закрыто | не используется | ||||||||||||||||
Window (окно) | WINDOW_ ICONIFY | Окно представлено в виде пиктограммы | не используется | ||||||||||||||||
Window (окно) | WINDOW_ DEICONIFY | Окно восстановлено | не используется | ||||||||||||||||
Window (окно) | WINDOW_MOVED | * | * | Окно перемещено | не используется | ||||||||||||||
Рисование "каракулей" в Java 1.0
Классический апплет, в котором используется модель обработки событий Java 1.0. В нем методы mouseDown() и mouseDragO переопределены таким образом, чтобы пользователь имел возможность рисовать "каракули" с помощью мыши. Также переопределен метод keyDown(), чтобы при нажатии клавиши [С] экран очищался, и метод action(), чтобы экран очищался после щелчка на кнопке Clear.
/* <applet code = “Scribble1” width=200 height=200>
</applet>
*/
import java.applet.*;
import java.awt.*;
/** Простой апплет, в котором используется модель обработки событий 1.0 */
public class Scribble1 extends Applet {
private int lastx, lasty; // Хранят координаты курсора мыши.
Button clear_button; // Кнопка Clear.
Graphics g; // Объект Graphics, который необходимо нарисовать.
/** Инициализация кнопки и объекта Graphics */
public void init() {
clear_button = new Button("Clear");
this.add(clear_button);
g = this.getGraphics();
}
/** Реакция на нажатие кнопки мыши */
public boolean mouseDown(Event e, int x, int y) {
lastx = x; lasty = y;
return true;
}
/** Реакция на перетаскивание с помощью мыши */
public boolean mouseDrag(Event e, int x, int y) {
g.setColor(Color.black);
g.drawLine(lastx, lasty, x, y);
lastx = x; lasty = y;
return true;
}
/** Реакция на нажатие клавиши [С] */
public boolean keyDown(Event e, int key) {
if ((e.id == Event.KEY_PRESS) && (key == 'с')) {
clear();
return true;
}
else return false;
}
/** Реакция на нажатие кнопки Clear */
public boolean action(Event e, Object arg) {
if (e.target == clear_button) {
clear();
return true;
}
else return false;
}
/** Метод для стирания каракулей */
public void clear() {
g.setColor(this.getBackground());
g.fillRect(0, 0, bounds().width, bounds().height);
} }
Экран вроде бы пустой – но на нем можно рисовать! – Scribble1.html.
Дата публикования: 2015-10-09; Прочитано: 154 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!