Dans cette fiche... |
Difficulté : ![]() |
Résultat |
La gestion de la souris et du
clavier se fait par événements.
Déplacez la souris au-dessus et hors de l'applet pour tester l'exemple. |
Attention : lisez ceci avant de programmer des événements en Java 1.02.
// ----------------------------------------- // EVTSOURIS1 : EVENEMENTS SOURIS (JDK 1.02) // -----------------------------------------
import java.applet.*; import java.awt.*;
public class EvtSouris1 extends Applet { boolean SourisEntree; boolean SourisDeplacee; int SourisX, SourisY;
public void init() { // Couleur du fond de l'applet setBackground(Color.black);
// Initialiser les variables SourisEntree = SourisDeplacee = false; } // -------------------- // GESTION DE LA SOURIS // --------------------
// Entrée de la souris dans la zone d'applet public boolean mouseEnter(Event evt, int x, int y) { SourisEntree = true; repaint();
return true; }
// Sortie de la souris de la zone d'applet public boolean mouseExit(Event evt, int x, int y) { SourisEntree = false; repaint();
return true; }
// Déplacement de la souris public boolean mouseMove(Event evt, int x, int y) { SourisDeplacee = true; SourisX = x; SourisY = y; repaint();
return true; } // --------- // AFFICHAGE // ---------
public void paint(Graphics g) { // Ecrire en blanc g.setColor(Color.white);
// Est-ce que la souris est dans l'applet ? if (SourisEntree) g.drawString("La souris est dans la zone d'applet...", 10, 20); else g.drawString("La souris est hors de l'applet...", 10, 20);
// Ecrire en orange g.setColor(Color.orange);
// Est-ce que la souris se déplace ? if (SourisDeplacee) g.drawString("La souris est en x=" + SourisX + " et y=" + SourisY, 10, 40);
// Réinitialiser le déplacement SourisDeplacee = false; } }
Comme d'habitude, seules les nouveautés sont commentées.
boolean SourisEntree; boolean SourisDeplacee; int SourisX, SourisY; |
4 variables qui vont servir à suivre les déplacements de la
souris :
|
public boolean mouseEnter(Event evt, int x, int y) { SourisEntree = true; repaint(); return true; } |
Les événements sont en fait des fonctions
appelées automatiquement par le système. A vous de programmer l'intérieur de ces fonctions, de façon à faire réagir votre applet à la souris. Un événement est donc une fonction publique, devant renvoyer un booléen
(true ou false). Ici, on considère l'événement mouseEnter(), qui se
produit au moment où la souris entre dans la zone d'applet.
Dans notre cas, on se contente de mémoriser que la souris est entrée (SourisEntree
= true), et de demander de redessiner l'applet (ce qui provoque indirectement
un appel à la méthode paint() écrite plus bas). Enfin, comme l'événement a été traité, on renvoie la valeur Vrai par : return true; |
public boolean mouseExit(Event evt, int x, int y) { SourisEntree = false; repaint(); return true; } |
Même principe que plus haut : l'événement mouseExit() se produit au moment où la souris sort de la zone d'applet. Facile, non ? |
public boolean mouseMove(Event evt, int x, int y) { SourisDeplacee = true; SourisX = x; SourisY = y; repaint(); return true; } |
Encore le même schéma. On en profite cette fois pour
mémoriser les coordonnées de la souris, qui seront affichées ensuite par
la méthode paint(). Reste à écrire la méthode paint(), qui se contente d'afficher les informations recueillies dans les événements. |
Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :
<applet code="EvtSouris1.class" width=250 height=100> Votre navigateur n'est pas compatible Java ! </applet>
Pour plus de précisions sur l'intégration d'une applet, cliquez ici.