import java.applet.Applet; import java.awt.Component; import java.awt.GridLayout; import java.awt.Panel; import java.awt.Color; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; /** Demonstratie van het afhandelen van * gebeurtenissen met betrekking tot de muis. * Deze applet toont een venster met negen * gekleurde rechthoeken. De rechthoek waarboven * de muisaanwijzer zich bevindt, heeft tijdelijk * een verschillende kleur. * @author Lieven Smits * @version 1.0 25/7/2000 */ public class MuisVolgerApplet extends Applet implements MouseListener { /** Negen gekleurde rechthoeken. */ Panel[] p; /** Construeer de applet met driemaal drie * rode rechthoeken. De rechthoeken worden * tijdelijk blauw wanneer de muisaanwijzer * eroverheen beweegt. */ public MuisVolgerApplet() { /* instantieer rij van negen rechthoeken */ p = new Panel[9]; /* GridLayout heeft ook een constructor met vier parameters: de derde en vierde parameter bepalen horizontale en verticale marges tussen de individuele componenten */ setLayout(new GridLayout(3, 3, 10, 10)); for (int i = 0; i < 9; i++) { /* instantieer individuele rechthoek */ p[i] = new Panel(); /* beginkleur (zie documentatie van de klasse Color voor een volledige lijst) */ p[i].setBackground(Color.red); p[i].addMouseListener(this); add(p[i]); } } /** Doe niets -- deze methode moet echter * aanwezig zijn in elke klasse die de interface * MouseListener implementeert */ public void mouseClicked(MouseEvent e) { } /** Als de muis een rechthoek binnentreedt, * wordt die rechthoek blauw. */ public void mouseEntered(MouseEvent e) { for (int i = 0; i < 9; i++) if (e.getSource().equals(p[i])) { p[i].setBackground(Color.blue); break; // event is afgehandeld } } /** Als de muis een rechthoek verlaat, * wordt die rechthoek rood. */ public void mouseExited(MouseEvent e) { for (int i = 0; i < 9; i++) if (e.getSource().equals(p[i])) { p[i].setBackground(Color.red); break; // event is afgehandeld } } /** Doe niets -- deze methode moet echter * aanwezig zijn in elke klasse die de interface * MouseListener implementeert */ public void mousePressed(MouseEvent e) { } /** Doe niets -- deze methode moet echter * aanwezig zijn in elke klasse die de interface * MouseListener implementeert */ public void mouseReleased(MouseEvent e) { } }