|
глядит следующим образом:
public boolean mouseMove(Event evt, int x, int y)
{
return true;
}
Он ничего не делает, кроме того что возвращает значение true, блокируя
обработку события, выполняемую в базовом классе.
Приложение LineDraw
Следующее приложение тоже работает с мышью. В его окне вы можете рисовать
прямые линии черного цвета (рис. 4.3).
Рис. 4.3. Аплет, в окне которого можно рисовать прямые линии
Для того чтобы нарисовать линию в окне аплета LineDraw, вы должны установить
курсор в начальную точку, нажать клавишу мыши и затем, не отпуская ее,
переместить курсор в конечную точку. После отпускания клавиши мыши координаты
линии будут сохранены аплетом в массиве, после чего произойдет перерисовка окна
аплета.
По мере того как вы будете рисовать линии, аплет будет заполнять массив с
координатами линий. Каждый раз, когда окно аплета будет перерисовываться, метод
paint перерисует все линии заново, пользуясь координатами, сохраненными в
массиве.
Для того чтобы стереть содержимое окна аплета, вам достаточно сделать
двойной щелчок в его окне. При этом из массива координать линий будут удалены
все элементы.
Исходные тексты приложения
Исходный текст аплета LineDraw приведен в листинге 4.3.
Листинг 4.3. Файл LineDraw\LineDraw.java
// =========================================================
// Рисование прямых линий
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW: http://www.glasnet.ru/~frolov
// или
// http://www.dials.ccas.ru/frolov
// =========================================================
import java.applet.*;
import java.awt.*;
// Добавляем для класса Vector
import java.util.*;
public class LineDraw extends Applet
{
// Координаты курсора при нажатии кнопки мыши
Dimension dmDown;
// Координаты курсора при отжатии кнопки мыши
Dimension dmUp;
// Предыдущие координаты конца линии
Dimension dmPrev;
// Признак включения режима рисования
boolean bDrawing;
// Массив координат линий
Vector lines;
// -------------------------------------------------------
// getAppletInfo
// Метод, возвращающей строку информации об аплете
// -------------------------------------------------------
public String getAppletInfo()
{
return "Name: LineDraw\r\n" +
"E-mail: [email protected]" +
"WWW: http://www.glasnet.ru/~frolov" +
"Author: Alexandr Frolov\r\n" +
"Created with Microsoft Visual J++ Version 1.0";
}
// -------------------------------------------------------
// init
// Метод, получающий управление при инициализации аплета
// -------------------------------------------------------
public void init()
{
// Сброс признака рисования
bDrawing = false;
// Создание массива для хранения координат линий
lines = new Vector();
}
// -------------------------------------------------------
// paint
// Метод paint, выполняющий рисование в окне аплета
// -------------------------------------------------------
public void paint(Graphics g)
{
// Определяем текущие размеры окна аплета
Dimension dimAppWndDimension = size();
// Выбираем в контекст отображения желтый цвет
g.setColor(Color.yellow);
// Закрашиваем внутреннюю область окна аплета
g.fillRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
// Выбираем в контекст отображения черный цвет
g.setColor(Color.black);
// Рисуем рамку вокруг окна аплета
g.drawRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
|
|