Guarda e magari prova la seguente applet (basta che la applet abbia una superficie di 200x200 pixel).
Disegna un poligono che normalmente è blu. Quando ci passi esattamente sopra con il mouse, il poligono si colora di rosso.
Anche se non ti fosse tutto chiaro, soffermati su come viene gestito il ri-disegno della applet. Ovvero sul fatto che i metodi degli eventi del mouse non disegnano direttamente qualcosa ma cambiano solo lo stato di una variabile di "flag" che indica se il mouse è "sopra" e poi chiedono il repaint asincrono.
Per qualunque dubbio, chiedi pure.
codice:import java.applet.*; import java.awt.*; import java.awt.event.*; public class PoligonoApplet extends Applet { private Polygon poligono; private boolean isOver; public void init() { try { EventQueue.invokeAndWait(new Runnable() { public void run() { initGui(); } }); } catch (Exception e) { System.err.println("initialization failed"); } } private void initGui() { poligono = new Polygon(); poligono.addPoint(75, 30); poligono.addPoint(120, 60); poligono.addPoint(90, 75); poligono.addPoint(130, 130); poligono.addPoint(65, 120); poligono.addPoint(20, 75); addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { isOver = poligono.contains(e.getPoint()); repaint(); } public void mouseExited(MouseEvent e) { isOver = false; repaint(); } }); } public void paint(Graphics g) { super.paint(g); if (isOver) { g.setColor(Color.RED); } else { g.setColor(Color.BLUE); } g.fillPolygon(poligono); } }

Rispondi quotando
