Souci avec drawImage, erreur à la compilation

cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008 - 6 avril 2008 à 18:53
 Utilisateur anonyme - 7 avril 2008 à 13:12
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:
.\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

Je vous c/c les bouts de codes qui sont en relation:

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)
    }


    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        ImageIcon icone=new ImageIcon("position.gif");
        g.drawImage(icone, (int)coord.getLatitude(), (int)coord.getLongitude(), this);
        
    }
}


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(); //
        }
    }


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


Voilà, si quelqu'un pouvait m'aiguiller sur ce que je dois faire pour corriger ce problème..

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:

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;
        } 
    }


Mais ça ne fonctionne pas mieux, et puis je préférerai quand même utiliser le .gif

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.

2 réponses

Utilisateur anonyme
7 avril 2008 à 13:10
Bonjour

PanelIcone doit implémenter ImageObserver selon moi.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
Utilisateur anonyme
7 avril 2008 à 13:12
Fais plutôt ça :
g.drawImage(icone.getImage(), (int)coord.getLatitude(), (int)coord.getLongi
tude(), this);

Lis un peu la documentation Java avant de poser une question ici :
http://java.sun.com/javase/6/docs/api/

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0