showStatus("Dragging mouse at : " +pos_x+","+pos_y);
repaint();}
public void mouseMoved(MouseEvent me) //перемещение мыши
{ pos_x=me.getX(); pos_y=me.getY();
msg="MouseMoved";
showStatus("Moved at : " +pos_x+","+pos_y);
repaint();}
public void paint(Graphics g)
{g.drawString(msg,pos_x,pos_y); }}
/*Пример обработки событий по первой модели (уже устаревшей, но поддерживаемой */
import java.awt.*; //подключение пакета оконного пользовательского
//интерфейса
import java.applet.*; //подключение библиотеки апплета
public class Mouse extends Applet //наследованиеоткласса Applet
{int pos_x=218, pos_y=245;
//начальная позиция окна вывода координат
//в принципе можно и не инициализировать, тогда имеем 0,0
Button button_1;
public void init() //клас Applet вызываетметоды init()и start()
//здесьметод init() переопределяется
{
setBackground(Color.gray); //установкацветафона
setForeground(Color.red); //установка цвета переднего плана,
//выводимые координаты -красного цвета
Label label_1=new Label("Обработка перемещений мыши",Label.LEFT);
add(label_1);
button_1= new Button("Close"); //Созданиеобъекта
button_1.reshape(10,10,100,40); //прорисовка
add(button_1); //добавление к контейнеру
//this.requestFocus();
}
public void paint(Graphics g)
{
//Прорисовка прямоугольника для динамического вывода
//координат курсора
g.drawLine(pos_x-3,pos_y-11,pos_x+80,pos_y-11);
g.drawLine(pos_x-3,pos_y-11,pos_x-3,pos_y+3);
g.drawLine(pos_x-3,pos_y+3,pos_x+80,pos_y+3);
g.drawLine(pos_x+80,pos_y-11,pos_x+80,pos_y+3);
g.drawString("X="+pos_x+"; Y="+pos_y, pos_x,pos_y);
}
public boolean action(Event ev,Object arg)
{int a1,a2;
//можно обработать через свойство id и константу, сгенерир. управл. эл
if (ev.id==ev.ACTION_EVENT)
{showStatus("Клик_левыйнакнопке Cancel:id="+ev.id+"; A_E="+ev.ACTION_EVENT+"arg="+arg);
repaint();}
return true;
}
/*public boolean handleEvent(Event ev)
//можно обработать через главный обработчик
{ //главный обработчик
if (ev.target==button_1) //откуда пришло событие
{showStatus("Клик_левый на кнопке Cancel:X="+pos_x+"; Y="+pos_y);
repaint();return true;}
else
return super.handleEvent(ev);}
*/
//если не от кнопки,
//то вернуть событие на обработку
/*if (ev.target instanceof Mouse)
mouseDown(ev,pos_x,pos_y);
return true;
}*/
public boolean mouseDown(Event ev, int x, int y)
{ //обработканажатиякнопкимыши
showStatus("Кликмышьюскоординатами: X="+pos_x+"; Y="+pos_y);
return true;
}
public boolean mouseMove(Event ev, int x, int y)
{ //обработка перемещения курсора мыши
pos_x=x; //выбор координат в доступные переменные
pos_y=y;
repaint();
return true;
}
}
/*Удивительно, что название button_1 = Close закрывает окно без обработки*/
/* Далее текст странички для запуска апплета */
<HTML>
<HEAD>
<TITLE>Обработка событий</TITLE>
</HEAD>
<BODY>
<H2>Апплет на WWW странице</H2>
<APPLET
CODE="Mouse.class"
WIDTH=300
HEIGHT=250>
</APPLET>
<BODY/>
</HTML>
// Результат работы выглядит так
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.