Voici un squelette d'Applet:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Carte extends Applet{
java.awt.Image img;
java.awt.Image current;
Point[] lesPoints;
public void init(){
this.addMouseMotionListener(new Listener(this));
lesPoints = new Point[8];
lesPoints[0] = new Point(245,215);
lesPoints[1] = new Point(260,129);
lesPoints[2] = new Point(400,212);
lesPoints[3] = new Point(121,278);
lesPoints[4] = new Point(153,383);
lesPoints[5] = new Point(335,450);
lesPoints[6] = new Point(320,344);
lesPoints[7] = new Point(209,438);
img = Toolkit.getDefaultToolkit().createImage("france.png");
}
public void paint(Graphics g){
g.drawImage(img,0,101,this);
g.setColor(Color.RED);
for (int i=0; i<8; i++){
g.fillOval((int) lesPoints[i].getX()-4,
(int) lesPoints[i].getY()-4,8,8);
}
}
public void update(Graphics g){
g.drawImage(img,0,101,this);
if (current != null){
g.setColor(Color.WHITE);
g.fillRect(0,0,200,100);
g.drawImage(current,0,0,this);
}
g.setColor(Color.RED);
for (int i=0; i<8; i++){
g.fillOval((int) lesPoints[i].getX()-4,
(int) lesPoints[i].getY()-4,8,8);
}
}
}
class Listener extends MouseMotionAdapter{
Carte app;
Listener(Carte im){
app = im;
}
public void mouseMoved(MouseEvent e){
// methode appelée quand un mouvement de la souris est detecté
// sur l'espace graphique de l'applet.
}
}
Voici l'affichage que cela donne:
Voici des images des huit villes marquées par un point rouge sur la carte ainsi que l'image de la carte.
Paris:
Bordeaux:
Lyon:
Marseille:
Toulouse:
Nantes:
Strasbourg:
Lille:
France:
lesPoints. Utilisez la variable
current pour y mettre la photo à afficher (les méthodes
d'affichage paint et update le font).