Bonjour,
j´essaie tant bien que mal de développer une applet qui affiche dans une zone de dessin une map monde sur laquelle j´affiche des choses.
J´utilise un border layout et j´ai placé la zone de dessin en son centre.
j´ai crée aussi une barre d´outils avec un bouton pour le moment.
J´ai juste essayé de tester si je pouvais placer cette barre d´outils dans les parties nord et sud du layout mais ca ne marche pas correctement lorsque j´observe le résultat sur une page web !
Les boutons sont masquées et n´apparaissent que lorsque la souris passe dessus ! Le premier bouton (Nord) apparait superposé sur la zone de dessin. De plus, la zone de dessin ne parait pas centrée comme les boutons.
Source de l´applet :
Code de la zone de dessin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import java.awt.*; import javax.swing.*; public class EcotypeMap extends JApplet { // Constantes de dimensions de l'applet private static int HAUTEUR = 550; private static int LARGEUR = 750; // Attributs private boolean mustStop; Image map; BarreOutils toolBar = new BarreOutils(); ZoneMap screen; public void init() { setPreferredSize(new Dimension(LARGEUR,HAUTEUR)); // Chargement de l'image de la MapMonde map = getImage(getCodeBase(),"map.gif"); screen = new ZoneMap(map); // Placement des différentes parties de l'applet this.getContentPane().setLayout(new BorderLayout(2,2)); this.getContentPane().add(toolBar,"North"); this.getContentPane().add(screen,"Center"); this.getContentPane().add(new BarreOutils(),"South"); } public void paint(Graphics gc) { // Affichage de la MapMonde // screen.afficheMap(gc); }
Code de la barre d´outils :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 import java.awt.*; import javax.swing.*; public class ZoneMap extends JPanel { // Attributs de la classe private Image map; private int sizeX = 652, sizeY = 392; // Correspond aux longitude et latitude (valeurs réelles) private double xInf = -175 , yInf = -90; private double xSup = +175 , ySup = +90; public ZoneMap(){ setBackground(Color.cyan); } public ZoneMap(Image map){ // Image de la mapmonde this.map = map; } // Méthodes de la zone d'affichage // Méthodes pour la conversion des coordonnées cartographiques en pixels private int coordToPixX(double x) { return (int)(sizeX * (x-xInf)/(xSup-xInf)); } private int coordToPixY(double y) { return sizeY-(int)(sizeY * (y-yInf)/(ySup-yInf)); } // Affichage simple de la carte public void afficheMap(Graphics gc) { //Affichage de la mapmonde gc.drawImage(map,0,0,652,392,this); }
En testant avec une fenetre classique (donc sans applet), l´affichage des boutons est correct donc que peut-il manquer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 import javax.swing.*; public class BarreOutils extends JPanel { public BarreOutils(){ JButton erase = new JButton("Erase"); this.add(erase); } }
Merci d´avance.
Partager