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

2D Java Discussion :

Methode non trouvé sur objet Graphics2D


Sujet :

2D Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut Methode non trouvé sur objet Graphics2D
    Alors voila la suite de mon arkanoid pour l'instant je voudrais juste dessiner des briques mais je bute sur un prob :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    import java.awt.*;
    import java.awt.Image;
    import java.awt.event.*;
    import javax.swing.*;
    import java.lang.Object;
     
    public class Map extends JFrame {
    	private int largeur;
    	private int hauteur;
     
    	public Map() {
    		super("Carte");
    		setSize(200, 200);
    		ExitWindow exit = new ExitWindow();
    		addWindowListener(exit);
    	}
     
    	public void Dimension(){
    		setSize(largeur,hauteur);
    	}
     
    	public static void main(String[] arguments) {
    		Map frame = new Map();
    		Ecran calque=new Ecran();
    		frame.largeur=600;
    		frame.hauteur = 500;
    		frame.Dimension();
    		/*Brique map = new Brique();
    		map.xpos=1;
    		map.ypos=1;
    		map.longueur=50;
    		map.hauteur=10;
    		frame.add(map);*/
    		Niveau stage1 = new Niveau();
    		stage1.Niveau(calque);
    		/*Brique h=new Brique();
    		h.xpos=206;
    		h.ypos=56;
    		h.longueur=63;
    		h.hauteur=49;*/
    		frame.add(calque);
    		while(true){
    			frame.repaint();
    			frame.setVisible(true);
    		}
     
    		//brique b = new brique();
    	}
     
    }
    class Niveau{
    	int i=0;
    	int j=0;
    	int nbBrique=0;
    	String[] tab = new String[6];
    	Brique[] tabBrique= new Brique[18];
    	Brique b = new Brique();
    	public void Niveau(Ecran g){
     
    		b.Brique(g);
     
    		tab[0]="000111000";
    		tab[1]="000111000";
    		tab[2]="000111000";
    		tab[3]="000111000";
    		tab[4]="000111000";
    		tab[5]="000111000";
    		char c;
    		for(i=0;i<5;i++){
    			for(j=0;j<8;j++){
    				c=tab[i].charAt(j);
    				if(c=='1'){
    					tabBrique[nbBrique]=b;					
    					tabBrique[nbBrique].xpos=nbBrique*5;
    					tabBrique[nbBrique].ypos=nbBrique*10;
    					tabBrique[nbBrique].longueur=50;
    					tabBrique[nbBrique].hauteur=10;
    					System.out.println("num brique :" + nbBrique);
    					System.out.println("xpos :" + tabBrique[nbBrique].xpos);
    					System.out.println("ypos :" + tabBrique[nbBrique].ypos);
    					//fenetre.add(tabBrique[nbBrique]);
    					//fenetre.repaint();
    					//tabBrique[nbBrique].repaint();
    					nbBrique++;
     
    					/*Brique b2 = new Brique();
     
    					b2.xpos=200;
    					b2.ypos=200;
    					b2.longueur=50;
    					b2.hauteur=60;
    					fenetre.add(b2);*/	
    				}
    			}
    		}
     
    	}
    }
     
    class Raquette {
    	public void dessinRaquette(){
     
    	}
    }
     
    class Brique extends   {
    	int xpos;
    	int ypos;
    	int longueur;
    	int hauteur;
     
    	public void Brique(Ecran t) {
                    // le problème est ici il me dit qu'il ne trouve pas de method
                    //drawRect
    		t.drawRect(xpos,ypos,longueur,hauteur);
    	}
    }
     
    class ExitWindow extends WindowAdapter {
    	public void windowClosing(WindowEvent e) {
    		System.exit(0);
    	}
    }
     
    class Ecran extends JPanel{
    	// a voir screengame.java
    	public void paintComponent(Graphics comp) {
    		Graphics2D comp2D = (Graphics2D)comp;
    	}
    }
    Le problème de la methode drawRect me casse la tete car il est nrmalement applique à l'objet calque à moins que je me sois planter dans ma logique.

    Alors si quelqu'un peut m'aider à m'expliquer le pourquoi du comment ca m'aiderais bien as avancé sur Java.

    Merci

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 816
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 816
    Points : 7 648
    Points
    7 648
    Par défaut Re: Methode non trouvé sur objet Graphics2D
    Salut,

    Citation Envoyé par staive
    Le problème de la methode drawRect me casse la tete car il est nrmalement applique à l'objet calque à moins que je me sois planter dans ma logique.
    Ca ne s'appliquerait pas plutôt sur un Graphics ton drawRect? Parce que sur un JPanel, y'a pas...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut
    Mais comment créer un objet Graphics2D ou l'on dessiner et ajouter des objets Brique ?

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    Soit en creant une BufferedImage et en recuperant son Graphics, soit tout simplement en re-utilisant celui qui a ete fournis en parametre de la methode paintComponent()

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut
    Voila l'erreur retourné :

    C:\Program Files\Xinox Software\JCreatorV3 LE\MyProjects\Asteroid\Map.java:114: cannot find symbol
    symbol : method drawRect(int,int,int,int)
    location: class Ecran
    t.drawRect(xpos,ypos,longueur,hauteur);

    Quelqu'un peut il me proposer une correction que j'y comprenne quelque chose please ?

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void Brique(Graphics2D g) { 
          g.drawRect(xpos,ypos,longueur,hauteur); 
    }

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut
    OK je suis d'accord avec toi mais maintenant, comment je fais pour déclarer un nouveau Gaphics2D que je doit mettre en paramètre lors de la creation de ma brique ?

    C du casse tete chinois

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    Je t'ai deja reponde a cette question precedement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class Ecran extends JPanel{ 
       // a voir screengame.java 
       public void paintComponent(Graphics comp) { 
          Graphics2D comp2D = (Graphics2D)comp; 
          .................................................................. // Ben faut peut-etre faire des choses ici non ???????????????????????????????????????
       } 
    }
    Ton code est quand meme bizarre....
    Le constructeur de la classe Brique n'est pas declare correctement et surtout, surtout... pourquoi fais-tu un affichage dans le constructeur de l'objet...

    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
     
    class Brique extends Rectangle { 
       /** Creates a new instance.
       */
       public Brique() { 
         super(1, 1, 50, 10);
       } 
     
       /** Draw this brick in the given graphics context.
       * @param g The graphics context in which to draw.
       */
       public void draw(Graphics2D g) {
         g.draw(this);
       }
    }

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    M'enfin revoie l'archi de ton programme pour decouper/separer sa logique, sa representation graphique et sa GUI. Ta classe Map n'a vraiment aucun besoin d'etendre JFrame. En plus a la fin tu y verras beaucoup plus clair.

    Astuce : dans ta frame tu peux utiliser setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) pour eviter d'avoir a creer un listener.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut
    Si je suis ton résonnement je ne peut pas créer plusieurs brique sinon on ne vas pouvoir afficher que la derniere brique si je ne me trompe pas...

    Je reviens demain pour voir ta réponse

    Merci

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut
    Voila le code que j'avais au début qui suivais plus ta logique mais il ne m'affichais que la derniere brique créer
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.lang.Object;
     
    public class Map extends JFrame {
       private int largeur;
       private int hauteur;
     
       public Map() {
          super("Carte");
          setSize(200, 200);
          ExitWindow exit = new ExitWindow();
          addWindowListener(exit);
       }
     
       public void Dimension(){
          setSize(largeur,hauteur);
       }
     
       public static void main(String[] arguments) {
          Map frame = new Map();
          frame.largeur=600;
          frame.hauteur = 500;
          frame.Dimension();
          /*Brique map = new Brique();
          map.xpos=1;
          map.ypos=1;
          map.longueur=50;
          map.hauteur=10;
          frame.add(map);*/
          Niveau stage1 = new Niveau();
          stage1.Niveau(frame);
     
          while(true){
             frame.repaint();
             frame.setVisible(true);
          }
     
          //brique b = new brique();
       }
     
    }
    class Niveau {
     
       public void Niveau(Map fenetre){
          int i=0;
          int j=0;
          int nbBrique=0;
          String[] tab = new String[6];
          Brique[] tabBrique= new Brique[18];
          tab[0]="000111000";
          tab[1]="000111000";
          tab[2]="000111000";
          tab[3]="000111000";
          tab[4]="000111000";
          tab[5]="000111000";
          char c;
          for(i=0;i<5;i++){
             for(j=0;j<8;j++){
                c=tab[i].charAt(j);
                if(c=='1'){
                   Brique b = new Brique();
     
                   tabBrique[nbBrique]=b;               
                   tabBrique[nbBrique].xpos=nbBrique*5;
                   tabBrique[nbBrique].ypos=nbBrique*10;
                   tabBrique[nbBrique].longueur=50;
                   tabBrique[nbBrique].hauteur=10;               
                   System.out.println("num brique :" + nbBrique);
                   System.out.println("xpos :" + tabBrique[nbBrique].xpos);
                   System.out.println("ypos :" + tabBrique[nbBrique].ypos);
                   fenetre.add(tabBrique[nbBrique]);
                   nbBrique++;
     
                   /*Brique b2 = new Brique();
                                  
                   b2.xpos=200;
                   b2.ypos=200;
                   b2.longueur=50;
                   b2.hauteur=60;
                   fenetre.add(b2);*/   
                }
             }
          }
     
       }
    }
     
    class Raquette {
       public void dessinRaquette(){
     
       }
    }
     
    class Brique extends JPanel {
       int xpos;
       int ypos;
       int longueur;
       int hauteur;
     
       public void paintComponent(Graphics comp) {
          Graphics2D comp2D = (Graphics2D)comp;
          comp2D.drawRect(xpos,ypos,longueur,hauteur);
       }
    }
     
    class ExitWindow extends WindowAdapter {
       public void windowClosing(WindowEvent e) {
          System.exit(0);
       }
    }

  12. #12
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    Si je suis ton résonnement je ne peut pas créer plusieurs brique sinon on ne vas pouvoir afficher que la derniere brique si je ne me trompe pas...
    Ben en general quand on a plusieurs briques on a un tableau de brique ou une liste de briques...

    Mais pourquoi donc Brique etend t'elle maintenant JPanel ?

  13. #13
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    Tiens voila un didacticiel qui devrait t'inspirer pour creer ton Arkanoid en Java : Comment creer un Space Invaders en Java en 29 lecons.

    Le seul truc que je lui reproche c'est l'utilisation d'un Canvas dans un envirronement Swing, mais bon... comme son jeu n'a pas de barre de menu, ca passe.
    Menfin ca devrait te remettre un peu plus dans le droit chemin.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2003
    Messages : 48
    Points : 26
    Points
    26
    Par défaut
    Merci pour le tuto bouye, bon il est en espagnol, mais bon je vais essayer de voir ça et je reviens si jamais ca m'a pas éclairé.

    a+

  15. #15
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    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 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    Euh, comment dire sur le côté droit de la page il y a... un tuto en anglais qu'est la traduc complète de la version espagnole (sauf 1 paragraphe que l'auteur a oublié de traduire).

    Tu vois le tuto espagnol ? Ca c'est le côté gauche... et ben la droite c'est de l'autre côté de l'écran....

Discussions similaires

  1. Erreur de classe non trouve sur différents projets
    Par X-plode dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 27/11/2008, 17h23
  2. Page non trouvée sur sur le site
    Par neuneu1 dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2008, 15h14
  3. Réponses: 3
    Dernier message: 25/09/2008, 14h42
  4. Encore un PB diapo mais reponse non trouvée sur forum
    Par kosaga dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 23/09/2008, 14h41
  5. [JSF]Probleme de methode non trouvé
    Par VincentP dans le forum JSF
    Réponses: 1
    Dernier message: 12/10/2005, 18h43

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