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.