On définit la classe Point1 de la manière suivante
:
Fichier : Point1.java
public class Point1 {
int x, y;
public Point1 (int x, int yy) {
y = yy;
this.x = x;
}
public void display () {
System.out.println("Point(" + x + "," + y + ")");
}
public static void main (String[] args) {
Point1 pt = new Point1(2, 3);
pt.display();
}
}
qui ne produit qu'un affichage sur la sortie System.out. La
classe Point2 qui étend Point1 et surcharge
la méthode show en affichant un rectangle noir de manière
graphique est définie ainsi :
Fichier : Point2.java
import java.awt.Graphics;
import java.awt.Color;
public class Point2 extends Point1 {
public Point2 (int x, int yy) {
super(x, yy);
}
public void show (Graphics g) {
g.setColor(Color.black);
g.fillRect(x, y, 10, 10);
}
}
Enfin la classe Point2test est une sous-classe d'Applet
définie ainsi :
Fichier : Point2test.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Point2test extends Applet {
class AdaptateurSouris extends MouseAdapter implements MouseListener {
public void mousePressed (MouseEvent e)
{
int x = e.getX();
int y = e.getY();
Point2 pt = new Point2(x, y);
pt.show(Point2test.this.getGraphics());
pt.display();
}
}
public void init_evenement() {
MouseListener clic = new AdaptateurSouris();
addMouseListener(clic);
}
public void init () {
this.setBackground(Color.white);
init_evenement();
}
}
PointColore sous-classe de Point1 tenant compte de la couleur du point.
Point3test sous-classe de Point2test
qui étend le comportement de l'applet en ajoutant un menu de sélection
de couleur (on pourra se limiter à 2 couleurs) pour le tracé des points.
Cette classe possède deux champs de données supplémentaires : un champ
Color pour la couleur courante et un champs Choice que l'on initialise avec la méthode addItem.
Point4test sous-classe de Point3test
qui permet de dessiner des rectangles. Si la largeur ou la hauteur
du rectangle est plus petite qu'une constante, on affiche alors un point coloré. On calcule la taille du rectangle
par les coordonnées de la souris quand on presse un bouton jusqu'au
coordonnées de la souris quand on relache le bouton. Il est nécessaire
de conserver les coordonnées du premier clic.