В свою очередь в класс прослушивания объявляется объект основного класса, который и используется в дальнейшем для передачи информации о событиях методам основного класса (для вызовов методов-обработчиков событий основного класса).
Так для обработки перемещения мыши в модели делегирования событий можно записать (смотри предыдущий пример вывода сообщений).
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class MouseEvents extends Applet
{ String msg=""; int pos_x=0, pos_y=0;
public void init ()
{ My_Listener my_contorl=new My_Listener(this);
addMouseListener (my_contorl);
addMouseMotionListener(my_contorl); }
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 void mouse_move (int x, int y)
{ pos_x = x; pos_y =y;
repaint ();
}
//далее записать все необходимые методы действий в апплете, в случае
// появления какого-либо события класс прослушивания
class My_Listener implements MouseListener, MouseMotionListener
{MouseEventsmy_applet; //Объект основного класса
//для передачи события методам
public My_Listener (MouseEvents m_a)
{ } //переопределение конструктора
public void mouseMoved (MouseEvent m_e) //получитьсобытие
//mouseMoved
{my_applet.mouse_move (m_e.getX(), m_e.getY());}
//далее реализовать все методы интерфейсов вызовом
//метотов основного класса
public void mouseExited(MouseEvent me) {}
public void mousePressed(MouseEvent m_e) {}
public void mouseEntered(MouseEvent me) {}
public void mouseReleased(MouseEvent me) {}
public void mouseDragged(MouseEvent me) {}
public void mouseClicked(MouseEvent me) {}
}
Блоком прослушивания может быть объявлен и сам источник событий. Например, для обработки событий от мыши можно определить следующее:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class MouseEvents extends Applet implements MouseListener, MouseMotionListener
{ String msg=""; int pos_x=0, pos_y=0;
//My_Listen my_control;
public void init ()
{ addMouseListener (this);
addMouseMotionListener(this); //регистрация себя как блока
} //прослушиваниясобытий
public void mouseClicked(MouseEvent me)
{ pos_x=0; pos_y=40; //обработка щелчка мыши
msg="Mouse clicked";
repaint();}
public void mouseEntered(MouseEvent me)
{ pos_x=0; pos_y=40; //обработка ввода мыши в окно
msg="Mouse entered";
repaint();}
public void mouseExited(MouseEvent me)
{ pos_x=0; pos_y=40; //обработка ввода мыши в окно
msg="Mouse exited";
repaint();}
public void mousePressed(MouseEvent me)
{ pos_x=me.getX(); pos_y=me.getY(); //обработка ввода мыши в окно
msg="Mouse Pressed";
repaint();}
public void mouseReleased(MouseEvent me) //освобождение кнопки
{ pos_x=me.getX(); pos_y=me.getY(); //обработка ввода мыши в окно
msg="Mouse Up";
repaint();}
public void mouseDragged(MouseEvent me) //перетаскивание Мыши
{ pos_x=me.getX(); pos_y=me.getY();
msg="MouseDragged";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.