После Создание базовой графической среды и анимация двигатель, ввести зачатки взаимодействия путем включения модели событий мыши.
Техника будет генерировать событие или происходит каждый раз, когда вы взаимодействуете с мышью. Это событие будет отражено в одном из наших программных модулей, обработать его и произвести некоторые действия.
Первый шаг заключается в том, чтобы понять, как генерировать эти события и, позже, Мы будет включать более сложные действия. В настоящее время является достаточно, чтобы определить тип события, которое возникает и положение на экране, где мы сделали это.
La событийно управляемое программирование является парадигмы программирования в котором оба структуры и осуществления программ определяются события, происходящие в системе, определяемые пользователем или причиняют.
Чтобы понять событийно управляемое программирование, Выступаем на то, что не: Время в последовательном программировании (o Структура) Это программист определяет, каким будет ход выполнения программы, в событийно управляемое программирование будет пользователь - или то, что вы подаете программы - которые направляют поток программы. Хотя последовательного программирования там, возможно вмешательство внешней программы агента, Эти мероприятия будет происходить, когда программист определило его, не в любое время, как он может быть в случае событийно управляемое программирование.(W)
Реализация интерфейса прослушивателя событий
Мы будем осуществлять системы события в уникальный класс графической библиотеки для изначально не усложнять модель. Первое, что мы будем делать будет изменить объявление класса отвечает за ведение базы данных и рисования графических объектов: “Доска”. Мы будем указывать с помощью тега “инвентарь” Этот класс способен слушать мыши.
Открытый класс Классная доска расширяется Холст инвентарь MouseListener{
Новый интерфейс требует от нас добавить новый вызов для библиотек JAVA для поиска файлов, реализующих этот интерфейс. Мы будем делать это с зарезервированным словом “импортировать”.
импортировать java.awt.event.MouseListener;
Он будет необходимо реализовать методы, определенные в интерфейсе, а также импортировать класс “MouseEvent” который передается как параметр в эти методы. На данный момент просто мы объявим их без включения какой-либо функциональности.
общественного недействительными mouseClicked(MouseEvent arg0) { // ВСЕ заглушки метода автоматическ произведены } общественного недействительными mouseEntered(MouseEvent arg0) { // ВСЕ заглушки метода автоматическ произведены } общественного недействительными mouseExited(MouseEvent arg0) { // ВСЕ заглушки метода автоматическ произведены } общественного недействительными mousePressed(MouseEvent arg0) { // ВСЕ заглушки метода автоматическ произведены } общественного недействительными mouseReleased(MouseEvent arg0) { // ВСЕ заглушки метода автоматическ произведены }
Журнал событий
Мы будем записывать события мыши всякий раз, когда это происходит. В конструкторе класса или метода будет включен вызов “addMouseListener” чтобы указать, что вы хотите добавить прослушиватель.
Параметр, который передается это имя класса, который прислушивается к мыши. В нашем случае мы будем указывать, что это тот же класс записывает это событие, которое будет сообщено, когда это происходит. Это сделали мы обязуемся с тегом “это“.
общественность Классная доска(){ это.addMouseListener(это); }
Управление события
Мы определяем несколько переменных, которые хранят координаты позиции экрана, где была нажата мышь
частных int lastX = 0; частных int Ласты = 0;
Мы будем осуществлять одну из предыдущих функций, Например, который выполняется каждый раз, когда нажата кнопка мыши “mouseClicked”. На данный момент мы будем просто держать координат, в которой была нажата, Хотя мы могли бы иметь сложную программу с добавленной функциональностью.
Эти координаты находятся в объекте или событии, которое передается в функцию, объект “MouseEvent”
общественного недействительными mouseClicked(MouseEvent arg0) { lastX = getX arg0.(); Ласты = getX arg0.(); }
Мы изменим метод, отвечающий за рисовать на экране графика, так что вы рисуете, то в позицию, где была нажата мышь. Это простейшая реализация, которая позволяет нам проверить графически, что мы захватили и обрабатываются события мыши.
общественного недействительными paintOffScreen(Графика г){ Перечень перечисление = bd.elements(); Объект OB; в то время как(enum.hasMoreElements()){ OB = enum.nextElement(); если(OB InstanceOf SimpleDrawable){ ((SimpleDrawable) ли).краска(грамм); } } paintMousePosition(грамм); }
Ответственный за эта функция “paintMousePosition”, осуществление которых заключается в написании графически сохраненные координат положения мыши, с помощью функции “Шнурок”.
частных недействительным paintMousePosition(Графика г) { g.drawString("("+lastX ","+Ласты ")", lastX, Ласты); }
Должно быть связано добавить комментарий.