//******************************************************************** // RubberLines.java Author: Lewis and Loftus // // Esempio d'implementazione di eventi, ascoltatori di eventi e tecniche grafiche. //******************************************************************** import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class RubberLines extends Applet implements MouseListener, MouseMotionListener { private final int APPLET_WIDTH = 200; private final int APPLET_HEIGHT = 200; private Point point1 = null; private Point point2 = null; //----------------------------------------------------------------- // Definisce la classe corrente come ascoltatore di tutti gli // eventi relativi al mouse. //----------------------------------------------------------------- public void init() { addMouseListener (this); addMouseMotionListener (this); setBackground (Color.black); setSize (APPLET_WIDTH, APPLET_HEIGHT); } //----------------------------------------------------------------- // Disegna la linea corrente dal punto in cui il mouse è stato premuto // alla sua posizione corrente. //----------------------------------------------------------------- public void paint (Graphics page) { page.setColor (Color.green); if (point1 != null && point2 != null) page.drawLine (point1.x, point1.y, point2.x, point2.y); } //----------------------------------------------------------------- // Intercetta la posizione in cui il mouse è stato inizialmente premuto. //----------------------------------------------------------------- public void mousePressed (MouseEvent event) { point1 = event.getPoint(); } //----------------------------------------------------------------- // Legge la posizione corrente del mouse mentre viene spostato // e disegna la linea per creare l'effetto elastico. //----------------------------------------------------------------- public void mouseDragged (MouseEvent event) { point2 = event.getPoint(); repaint(); } //----------------------------------------------------------------- // Fornisce definizioni vuote per i metodi evento non utilizzati. //----------------------------------------------------------------- public void mouseClicked (MouseEvent event) {} public void mouseReleased (MouseEvent event) {} public void mouseEntered (MouseEvent event) {} public void mouseExited (MouseEvent event) {} public void mouseMoved (MouseEvent event) {} }