Bonjour à tous,
Pour mes études (BTS IRIS) je dois développer une application en Java, à savoir une application qui affiche un point sur une carte en fonction de les latitudes et longitudes entrées dans une zone de texte.
J'ai tout fait, mais je n'arrive pas à faire fonctionner drawImage, qui me permettra (quand il fonctionnera correctement) d'afficher une petite image (une boule bleue) sur ma carte, au moment du click sur mon bouton "Valider"..
Seulement, au moment de la compilation, j'obtiens cette erreur:
Je vous c/c les bouts de codes qui sont en relation:.\PanelIcone.java:14: cannot find symbol
symbol : method drawImage(javax.swing.ImageIcon,int,int,PanelIcone)
location: class java.awt.Graphics
g.drawImage(icone, (int)coord.getLatitude(), (int)coord.getLongi
tude(), this);
^
1 error
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class Map extends JFrame /*implements ActionListener*/{ Coordonnee coord; private PanelIcone icone; private JTextField tLatitude; private JTextField tLongitude; public Map (String titre, int w, int h, Coordonnee coord ) { super(titre); // Utilisation du constructeur de JFrame (class dont j'hérite) this.coord=coord; this.setDefaultCloseOperation(EXIT_ON_CLOSE); // Permet de fermer la fenêtre (sans demande de confirmation) this.centreEcran(w,h); // Classe permettant de centrer la fenêtre au démmarage de l'application this.initialise(); // Construction de la fenêtre principale du programme (Container) }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void paintComponent(Graphics g) { super.paintComponent(g); ImageIcon icone=new ImageIcon("position.gif"); g.drawImage(icone, (int)coord.getLatitude(), (int)coord.getLongitude(), this); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class ValiderListener implements ActionListener { public void actionPerformed(ActionEvent evt) { double lat_a_trouver = Double.parseDouble(tLatitude.getText()); double lon_a_trouver = Double.parseDouble(tLongitude.getText()); coord.setLongitude(lon_a_trouver); coord.setLatitude(lat_a_trouver); icone.repaint(); // } }Voilà, si quelqu'un pouvait m'aiguiller sur ce que je dois faire pour corriger ce problème..
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 public class Coordonnee { private double longitude; private double latitude; private double pas_lat; private double pas_long; public final static double hg_lat=19.737; public final static double hg_long=20.20304; public final static double bd_lat=14.340; public final static double bd_long=28.265; public Coordonnee() { this.longitude=0; this.latitude=0; } public Coordonnee(double lon, double lat) { this.longitude=lon; this.latitude=lat; } public double getLongitude() { pas_long=(bd_long-hg_long)/4000; return (this.longitude-hg_long)/pas_long; } public double getLatitude() { pas_lat=(hg_lat-bd_lat)/4000; return (hg_lat-this.latitude)/pas_lat; } public void setLongitude(double longitude) { this.longitude=longitude; } public void setLatitude(double latitude) { this.latitude=latitude; } } // Fin class
J'ai essayé de contourner le problème en dessinant moi même une ellipse au lieu de faire intervenir un .gif, grâce à une ellipse:
Mais ça ne fonctionne pas mieux, et puis je préférerai quand même utiliser le .gif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Ellipse extends Object { double x, y; // Coordonnées du centre de l'ellipse int largeur, hauteur; // Dimensions de l'ellipse Color couleur; // Couleur de l'ellipse public Ellipse(double x, double y) { x = coord.getLatitude(); y = coord.getLongitude(); largeur = 2000; hauteur = 2000; couleur = Color.red; } }
Je vous remercie d'avoir pris le temps de lire ce topic (très..) long. Et merci d'avances pour vos éventuelles futures réponses.
Partager