|
/ Рисуем в цикле линии, координаты которых
// хранятся в массиве lines
for (int i=0; i < lines.size(); i++)
{
// Получаем координаты очередной линии
Rectangle p = (Rectangle)lines.elementAt(i);
// Рисуем линию
g.drawLine( p.width, p.height, p.x, p.y);
}
// Сбрасываем режим рисования
bDrawing = false;
}
// -------------------------------------------------------
// mouseDown
// Обработка щелчка кнопкой мыши
// -------------------------------------------------------
public boolean mouseDown(Event evt, int x, int y)
{
// Если количествао щелчков больше 1, считаем что
// сделан двойной щелчок
if(evt.clickCount > 1)
{
// Удаляем все строки из массива lines
lines.removeAllElements();
// Перерисовываем окно аплета
repaint();
return true;
}
// Сохраняем текущие координаты начала линии
dmDown = new Dimension(x, y);
// В начале процесса рисования линии устанавливаем
// предыдущие координаты конца линии равными
// координатам начала линии
dmPrev = new Dimension(x, y);
// Отключаем режим рисования
bDrawing = false;
return true;
}
// -------------------------------------------------------
// mouseUp
// Отпускание клавиши мыши
// -------------------------------------------------------
public boolean mouseUp(Event evt, int x, int y)
{
// Проверяем, включен ли режим рисования
if(bDrawing)
{
// Если режим рисования включен, добавляем
// новый элемент в массив lines
// Сохраняем координаты конца линии
dmUp = new Dimension(x, y);
// Добавляем линию в массив
lines.addElement(
new Rectangle(dmDown.width, dmDown.height, x, y));
// Перерисовываем окно аплета
repaint();
// Отключаем режим рисования
bDrawing = false;
}
return true;
}
// -------------------------------------------------------
// mouseDrag
// Перемещение курсора мыши при нажатой клавише
// -------------------------------------------------------
public boolean mouseDrag(Event evt, int x, int y)
{
// Получаем контекст отображения для окна аплета
Graphics g = getGraphics();
// Включаем режим рисования
bDrawing = true;
// Закрашиваем предыдущую линию цветом фона
// (то есть стираем ее)
g.setColor(Color.yellow);
g.drawLine(dmDown.width, dmDown.height,
dmPrev.width, dmPrev.height);
// Рисуем новую линию черным цветом
g.setColor(Color.black);
g.drawLine(dmDown.width, dmDown.height, x, y);
// Сохраняем координаты предыдущей линии,
// чтобы стереть ее в следующий раз
dmPrev = new Dimension(x, y);
return true;
}
// -------------------------------------------------------
|
|