Java

Solo disponible en BuenasTareas
  • Páginas : 21 (5108 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de junio de 2011
Leer documento completo
Vista previa del texto
Interfaces Graphiques
Dessiner avec JAVA
Contexte Graphique Rafraîchissement Java2D

© Philippe GENOUD

UJF

Mai 2005

1

GUI
The JFC Tutorial: A guide to constructing GUI Kathy Walrath, Mary Campione

bibliographie bibliographie

http://java.sun.com/docs/books/tutorial/uiswing Java Tutorial Specialized trails : Trail: 2D Graphics Deborah Adair, Jennifer Ball and Monica Pawlanhttp://java.sun.com/docs/books/tutorial/2d Java 2D Graphics Jonathan Knudsen, Ed. O'Reilly Java 2D API Graphics Vincent J. Hardy, Java Series, Prentice Hall

© Philippe GENOUD

UJF

Mai 2005

2

1

GUI

Adaptateurs d’événements Adaptateurs d’événements Dessin des segments de droite Dessin des segments de droite

Gestion des événements souris
Déplacement de la souris sur la zone dedessin met à jour les coordonnées du curseur dans la barre d’état
MOUSE_MOVED, MOUSE_DRAGGED

Appuyer sur un bouton de la souris (MOUSE_PRESSED) définit le début d ’une droite Relacher le bouton de la souris (MOUSE_RELEASED) définit la fin de la droite •type d ’événement MouseEvent •source : zone de dessin •interface d ’écoute : MouseListener •récepteur : zone de dessin Comme pour la fermeturede la fenêtre seule deux des méthodes de l ’interface nous intéressent

< interface > MouseListener
void mouseClicked(MouseEvent) void mouseEntered(MouseEvent) void mouseExited(MouseEvent) void mousePressed(MouseEvent) void mouseReleased(MouseEvent)

© Philippe GENOUD

UJF

Mai 2005

3

GUI
import java.awt.*; import javax.swing.*; import java.awt.event.*;

Adaptateurs d’événementsAdaptateurs d’événements Dessin des segments de droite Dessin des segments de droite
Pour ne pas avoir à définir des méthodes inutiles possibilité d’utiliser un adaptateur d’événements : MouseAdapter

public class ZoneDessin extends JPanel implements MouseMotionListener { private BarreEtat be; public ZoneDessin(BarreEtat be) { setBackground(Color.white); setCursor(newCursor(Cursor.CROSSHAIR_CURSOR)); this.be = be; addMouseMotionListener(this); } addMouseListener(new GestionnaireClic(this));

import java.awt.event.*; public class GestionnaireClic extends MouseAdapter { ZoneGraphique zone; public GestionnaireClic(ZoneGraphique z) { zone = z; } public void mousePressed(MouseEvent e) { zone.initieDroite(e.getX(),e.getY()); } public void mouseReleased(MouseEvent e) {zone.termineDroite(e.getX(),e.getY()); } }

public void mouseMoved(MouseEvent e) { be.afficheCoord(e.getX(),e.getY()); } public void mouseDragged(MouseEvent e) { be.afficheCoord(e.getX(),e.getY()); }

public void initieDroite(int x, int y) { be.afficheMessage("Relacher pour dessiner la droite"); // on complétera ensuite } public void termineDroite(int x, int y) { be.afficheMessage("Cliquer pour initier unedroite"); // on complétera ensuite } } // ZoneGraphique

© Philippe GENOUD

UJF

Mai 2005

4

2

GUI
import java.awt.*; import javax.swing.*; import java.awt.event.*;

Adaptateurs d’événements Adaptateurs d’événements Dessin des segments de droite Dessin des segments de droite
Avec une classe interne (inner classe) anonyme

public class ZoneDessin extends Jpanel implementsMouseMotionListener { private BarreEtat be; public ZoneDessin(BarreEtat be) { setBackground(Color.white); setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); this.be = be; addMouseMotionListener(this); addMouseListener( new MouseAdapter() { public void mousePressed(MouseEvent e) { initieDroite(e.getX(),e.getY()); } public void mouseReleased(MouseEvent e) { termineDroite(e.getX(),e.getY()); } } ); } public voidinitieDroite(int x, int y) { be.afficheMessage(« Relacher pour dessiner la droite »); // on complétera ensuite } public void termineDroite(int x, int y) { be.afficheMessage(« Cliquer pour initier une droite »); // on complétera ensuite } ... } // ZoneGraphique © Philippe GENOUD UJF Mai 2005

L’instance de la classe anonyme a implicitement accès à l ’instance de la classe externe qui (c.a.d....
tracking img