IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Souci avec drawImage, erreur à la compilation


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut Souci avec drawImage, erreur à la compilation
    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:

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

    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;
    		}  
    	}
    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. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Il faut utiliser la classe Graphics2D et pas simplement Graphics.
    Fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graphics2D g2d = (Graphics2D) g;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Mais pourtant Graphics2d hérite de Graphics.. Donc ça ne devrait pas poser de problème..

    Je ne vois pas trop comment utiliser ce que tu m'as donné en plus.
    Merci de ta réponse en tout cas, et encore désolé pour ces questions, je suis vraiment extrêmement novice en Java, j'ai commencé il y a moins d'une semaine, et j'ai été pas mal aidé par un ami en DUT Informatique... Mais même lui est bloqué à cette erreur.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Ca n'a meme aucun rapport.

    drawImage() attend une Image, pas une ImageIcon (voir methode getImage()). Egalement il est bien plus courant, et plus rapide de passer null en parametre ImageObserver de drawImage() surtout si ton image est deja completement chargee en memoire.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par bouye Voir le message
    Ca n'a meme aucun rapport.
    Au temps pour moi.. répondu trop vite

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Voilà merci, ça fonctionne maintenant. Seulement.. J'ai encore deux petits soucis, mon .gif s'affiche derrière ma carte, et quand j'enlève la carte pour voir si le bouton s'affiche bien, il s'affiche en effet... Mais plus petit que le .gif original..

    N'ayant pas défini de Layout pour le panel que j'utilise pour la carte et le .gif je pense que ça vient de là.. Mais en ce qui concerne la réduction de la taille de mon .gif... là...

Discussions similaires

  1. [ANT]Compilation avec ANT : erreur
    Par nana1 dans le forum ANT
    Réponses: 4
    Dernier message: 15/12/2005, 12h15
  2. compilation avec gcc: erreur inhabituelle
    Par artatum dans le forum C
    Réponses: 4
    Dernier message: 12/10/2005, 17h13
  3. compilation avec gcc : erreurs bizard !!!
    Par CodeurNé dans le forum C
    Réponses: 2
    Dernier message: 23/09/2005, 18h09
  4. [FreePascal]Erreur de compilation avec Dev-Pascal
    Par youngeikichi dans le forum Free Pascal
    Réponses: 3
    Dernier message: 17/02/2005, 14h22
  5. Api mysql avec Devc++, erreur de compilation
    Par Viiince dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/06/2004, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo