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




Рисование "каракулей" в Java 1.0 - часть 5


/p>

Рисование "каракулей" в Java 1.1

Модель обработки событий Java 1.1 является достаточно гибкой и предоставляет пользователю ряд возможностей для структуризации программы обработки событий. Первый из этих способов продемонстрирован в примере. В апплете данной версии реализованы интерфейсы MouseListener и MouseMotionListener, регистрирующие себя с помощью своих же методов addMouseListener() и addMouseMotionListener().

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

</applet>

*/

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class Scribble2 extends Applet implements

MouseListener, MouseMotionListener {

private int last_x, last_y;

public void init() {

// Сообщает данному апплету о том, какие объекты

// классов MouseListener и MouseMotionListener он должен оповещать

// о событиях, связанных с мышью и ее перемещением.

// Поскольку интерфейс реализуется в самом апплете,

// при этом будут вызываться методы апплета.

this.addMouseListener(this) ;

this.addMouseMotionListener(this);

}

// Метод интерфейса MouseListener. Вызывается при нажатии

// пользователем кнопки мыши.

public void mousePressed(MouseEvent e) {

last_x = e.getX();

last_y = e.getY();

}

// Метод интерфейса MouseMotionListener. Вызывается при

// перемещении мыши с нажатой кнопкой.

public void mouseDragged(MouseEvent e) {

Graphics g = this.getGraphics();

int x = e.getX(), y = e.getY();

g.drawLine(last_x, last_y, x, y);

last_x = x; last_y = y;

}

// Другие, не используемые методы интерфейса MouseListener.

public void mouseReleased(MouseEvent e) {;}

public void mouseClicked(MouseEvent e) {;}

public void mouseEntered(MouseEvent e) {;}

public void mouseExited(MouseEvent e) {;}

// Другой метод интерфейса MouseMotionListener.

public void mouseMoved(MouseEvent e) {;}

}

Рисуйте на здоровье (может у Вас талант) – Scribble2.html.

Рисование "каракулей" с использованием встроенных классов

Модель обработки событий Java 1.1 разработана с учетом того, чтобы хорошо сочетаться с другой новой особенностью Java 1.1: встроенными классами (глава, посвященная им, еще не написана ;-(). В следующем примере показано, как изменится данный апплет, если слушатели событий будут реализованы в виде анонимных встроенных классов. Обратите внимание на компактность данного варианта программы. Новая особенность, добавленная в апплет - кнопка Clear. Для этой кнопки зарегистрирован объект ActionListener, а сама она выполняет очистку экрана при наступлении соответствующего события.




Содержание  Назад  Вперед