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 :

[Débutant] Problème de "Cannot find symbol"


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut [Débutant] Problème de "Cannot find symbol"
    Bonsoir, j'ai un petit problème de débutant que je n'arrive pas à régler.

    Mon programme est fait de deux fichiers (Graph.java et Frame.java).
    Dans le premier j'ai un code tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Graph extends JPanel {
        public void paint(Graphics g) {
            g.setColor(java.awt.Color.GREEN);
            Dimension size = getSize(); 
            g.translate(size.width / 2, size.height / 2);
            g.drawLine(-size.width / 2, 0, size.width / 2, 0);
            g.drawLine(0, -size.height / 2, 0, size.height / 2);
        }
    }
    Dans le deuxième, lorsque je veux tracer une ligne, par exemple, lors de l'appui sur un bouton,

    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
    public class Frame extends JFrame implements ActionListener {
        public Frame() {
            //du code
            Graph g = new Graph();
        }
     
        public void actionPerformed(ActionEvent e) {
            g.drawLine(-100, 100, 100, -100);
        }
     
        public static void main(String args[]) {
            Frame f = new Frame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(800, 600);
            f.setVisible(true);
        }
    }
    j'obtiens l'erreur :
    cannot find symbol
    symbol : variable
    location: class Frame

    Pourtant, j'ai bien créé une instance de Graph, donc je ne vois pas trop.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    MMMMMMMMHHHHHHHHHH

    La classe et son constructeur ne devrait elles pas avoir le même nom par le plus grand des hasards, car ce n'est pas le cas dans ton code

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    Arf, c'était juste une erreur de recopie, j'ai d'ailleurs recompilé et je n'ai pas d'erreur dans mes fichiers autre que celle que j'ai mentionnée dans le premier post.

    Dois-je créer une instance de Graph dans le fichier Graph.java ?

    Merci de ton aide ^^

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    Bon, j'ai peut-être eu une inspiration () en lisant ce topic, donc j'ai instancié come ceci :

    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
     
    public class Frame extends JFrame implements ActionListener {
        Graph g = new Graph();
     
        public Frame() {  
            //du code   
        }      
     
        public void actionPerformed(ActionEvent e) {
            g.drawLine(-100, 100, 100, -100); }
     
        public static void main(String args[]) {  
            Frame f = new Frame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(800, 600);
            f.setVisible(true); 
        }
    }
    Mais maintenant, j'obtiens cette erreur :

    cannot find symbol
    method drawLine(int,int,int,int)
    class Graph

    Merci d'avance

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Je ne vois pas cette méthode déclarée dans ta classe Graph...
    Soit tu l'implémentes dans ta classe, soit tu y fais appel sur une instance de Graphics.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    Je n'ai pas bien compris ta réponse, en fait je ne comprends tout simplement pas pourquoi drawLine n'est pas reconnue puisque c'est une méthode de Graphics, et que j'ai créé un objet de type Graph.

    Ce que je veux dire, c'est pourquoi drawLine fonctionne dans la classe Graph mais pas dans la classe Frame

Discussions similaires

  1. Problème "cannot find symbol"
    Par polaroid62 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 27/12/2013, 19h48
  2. cannot find symbol class sprite
    Par Risike dans le forum Java ME
    Réponses: 3
    Dernier message: 27/06/2007, 11h33
  3. [Bizarre] cannot find symbol
    Par Fredo02 dans le forum Langage
    Réponses: 1
    Dernier message: 22/12/2006, 01h01
  4. [debug] "cannot find symbol" classe interne
    Par NailMaker dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2006, 20h00

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