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

 Java Discussion :

[Frame] Gérer les composants


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [Frame] Gérer les composants
    Bonjour,

    J'ai réalisé une frame "jeu"(avec un menu barre...) via une class, et j'essaie d'y appliquer des composants ( BorderLayout, Panels) qui se trouvent dans une autre class "Damier".

    Mon problème c'est que dans ma class principale (qui génère la frame) je n'arrive absolument pas à faire appel à l'autre class pour inclure dans ma frame les composants (BorderLayout, Panel...).




    Voici les grands traits du programme :
    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
     
    //class créant le BorderLayout, Panel....etc:
    public class Damier {
     
      Panel grille[][] = new Panel [10][10]; 
      Panel damier = new Panel();
      Panel east   = new Panel();
      Panel west   = new Panel();
      Panel south  = new Panel();
      Panel north  = new Panel();
     
     
     public void damier() {
     
     
    	    damier.setLayout(new GridLayout(10,10));	    
     
     
     
    //class principale, créant la frame:
     
    public class Jeu{//création de la frame F....etc
    	//....etc
                    static Damier NDamier = new Damier();
    //puis j'essaie de les intégréer dans ma frame F:
     
                                      F.setLayout(new BorderLayout());
    		  F.add(damier,BorderLayout.CENTER);
    		  F.add(east,BorderLayout.EAST);
    		  F.add(west,BorderLayout.SOUTH); 
    		  F.add(south,BorderLayout.WEST); 
    		  F.add(north,BorderLayout.NORTH);
    Comment faire?


    Laurent



    [Modéré par Didier]
    Ajout de tag dans le titre
    Ajout de balise code
    Lire les règles du forum : Règles du forum Java

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Ben à vue de nez, si tes panels damier, east, west etc. appartiennent à la classe Damier, ya pas de raison que tu puisses les employer dans une autre classe.
    Alors, soit tu les déclares public, et tu les appelles dans ta classe Jeu en faisant ton_damier.east, soit dans ta classe Damier, tu faits des méthodes getDamier(), getEast(), getWest() etc. qui renvoient ces panels. Et puis dans ta classe Jeu, tu appelles ces méthodes pour avoir tes panels.
    Hoooo!!
    Mais ce n'est pas qu'une question de moyens !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    fait de ta class damier un Panel et ajoute le Panel damier dans ta frame jeu:

    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
    //class créant le BorderLayout, Panel....etc: 
    public class Damier extends Panel{ 
     
      Panel grille[][] = new Panel [10][10]; 
      Panel damier = new Panel(); 
      Panel east   = new Panel(); 
      Panel west   = new Panel(); 
      Panel south  = new Panel(); 
      Panel north  = new Panel(); 
     
     
     public void Damier() { 
     
     
           this.setLayout(new GridLayout(10,10));       
     
     
     
    //class principale, créant la frame: 
     
    public class Jeu{//création de la frame F....etc 
       //....etc 
                     Damier NDamier = new Damier(); 
    //puis j'essaie de les intégréer dans ma frame F: 
     
                                      F.setLayout(new BorderLayout()); 
                   F.add(NDamier,BorderLayout.NORTH);
    normalement il n'y aura pas de probleme pour ajouter ton damier à ta frame.

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    tu peux aussi contourner le pb en faisant une methode dans Damier qui se charge des add :
    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
     
     
    //class créant le BorderLayout, Panel....etc: 
    public class Damier { 
     
      Panel grille[][] = new Panel [10][10]; 
      Panel damier = new Panel(); 
      Panel east   = new Panel(); 
      Panel west   = new Panel(); 
      Panel south  = new Panel(); 
      Panel north  = new Panel(); 
     
     
     public void damier() {         
           damier.setLayout(new GridLayout(10,10));       
     }
     
     public void init() {
            add(damier,BorderLayout.CENTER); 
            add(east,BorderLayout.EAST); 
            add(west,BorderLayout.SOUTH); 
            add(south,BorderLayout.WEST); 
            add(north,BorderLayout.NORTH); 
    }
     
    //class principale, créant la frame: 
     
    public class Jeu{//création de la frame F....etc 
       //....etc 
                    static Damier NDamier = new Damier(); 
     
                    NDamier.init();
     
     //puis j'essaie de les intégréer dans ma frame F: 
     
                            F.setLayout(new BorderLayout()); 
     
                            F.getContentPane().add(NDamier);
    Un autre conseil : utilise des JPanel, JFrame, etc du paquetage javax.swing, il paraît que c'est mieux(threads au lieu de processus).
    Les classes et les méthodes sont exactement les mêmes.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Mille merci....avec vos conseils ça marche nickel crome!!!


    Laurent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer et gérer les effets avec FX Composer
    Par Hoodyny dans le forum XNA/Monogame
    Réponses: 5
    Dernier message: 22/10/2009, 14h56
  2. Recherche composant pour gérer les wallpapers
    Par boon31 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/11/2007, 19h12
  3. Les composants d'une frame n'apparaissent pas :/
    Par Sylver--- dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 17/07/2007, 15h00
  4. Composant pour gérer les fichiers PDF
    Par BXDSPORT dans le forum Delphi
    Réponses: 4
    Dernier message: 27/05/2007, 08h53
  5. Réponses: 1
    Dernier message: 20/08/2006, 18h48

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