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

AWT/Swing Java Discussion :

Ajouter à ma frame fenêtre, une nouvelle classe (un panel)


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 141
    Par défaut Ajouter à ma frame fenêtre, une nouvelle classe (un panel)
    Bonjour.

    J'ai un problème sur une chose avec Swing

    J'aimerai pouvoir appeler d'une frame "fenetre" appeler une nouvelle classe qui s'appelle "damier" et pouvoir l'ajouter.

    Mais je fais ça :

    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
    public class Fenetre  extends JFrame{
    private Damier unDamier;
    ...
     
    public Fenetre(int[][]  Matrice_debutJeux){
    unDamier = new Damier(Matrice_debutJeux);
    this.getContentPane().add(unDamier, BorderLayout.CENTER);
    ...
    }
     
    // ma classe damier
     
    public class Damier extends JPanel {
    public Damier(int[][]  Matrice_debutJeux) {
     
    ..
     for (int i = 0; i <=  1 ; i++) { 
    	            for (int j = 0; j <= 2; j++) { 
    	            ["+j+"] =" + Matrice_debutJeux[i][j] );
    	            	 lb = new JLabel();
    		            	if ( Matrice_debutJeux[i][j] == 1 )
    		            	{
    		            		System.out.println("ok");
    		            		lb.setBackground(Color.white);
     
                                 } 
    	        }
    	}
     
    //
    En gros je voudrai ajouter à ma frame fenêtre, un Panel dans autre classe
    mais la matrice en paramètre est correct, mais aucun affichage. Comment puis-je faire ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Faut peut être aussi ajouter tes JLabel dans ton damier, ce que je ne vois pas dans ton code.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 141
    Par défaut
    malheureusement si j'en ai mis , c'est pour sa que cela me semble bizarre.
    Peut être que je devrai afficher tout mon code ?

    Parce que il rentre bien dans ma condition et affiche bien plusieurs fois ok, mais n'affiche pas mes labels , donc est ce que au niveau de mon code cela devrai marcher ou il y aurai quelque chose qui pourrais résoudre mon problème ?

    Merci d'avance

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Montre nous ton code avec les JLabel instanciés et ajoutés dans ta classe dérivée de JPanel, parce que là comme ça, on manque un peu de détails pour te répondre

    Idriss

  5. #5
    Membre expérimenté Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Par défaut
    Pour que tes JLabel soient visibles dans ton damier, tu dois les ajouter à ton JPanel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //...
    lb = new JLabel("");
    //...
    damier.add(lb);
    Je te passe la question des layout managers.

    Si c'est ta fenêtre qui ne s'affiche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetre.setVisible(true);

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 141
    Par défaut
    Merci

    Voila mes variables de la classe PanelDamier et mon constructeur PanelDamier
    ------------------------------------
    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
     
     
    JLabel lb;
    	public int[] []  Matrice_debutJeu ;
    	JPanel p ;
    	 JButton b ;
     
     
    public PanelDamier(int[][]  Matrice_debutJeux) {
    		// TODO Auto-generated constructor stub
     
    		System.out.println(" coucou Panel Panier ");
    		 System.out.println("Matrice_debutJeux[1][0] =" + Matrice_debutJeux[1][0] );
     
    		 p = new JPanel();
    		  b = new JButton();
     
    		  p.add(b);
     
    		p.setLayout(new GridLayout (2, 3));
    		System.out.println(" matrice jeux  --  matrice pions");
    		 for (int i = 0; i <=  1 ; i++) { 
    	            for (int j = 0; j <= 2; j++) { 
     
     
     
    	            	System.out.println(" PanelPanier : Matrice_debutJeux["+i+"]["+j+"] =" + Matrice_debutJeux[i][j] );
    	            	 lb = new JLabel();
    		            	if ( Matrice_debutJeux[i][j] == 1 )
    		            	{
    		            		System.out.println("ok");
    		            		lb.setBackground(Color.white);
     
    		                } 
    		            	if ( Matrice_debutJeux[i][j] == 2 )
    		            	{
    		            		lb.setBackground(Color.blue);
     
    		                }
    		            	else
    		            	{
    		            		lb.setBackground(Color.orange);
    		            	}
    	               p.add(lb); 
     
    	            } 
    	        }
    Et ici , j'appel mon JPanel dans ma classe Fenetre :
    -------------------------------------------------------
    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
     
    private PanelDamier MonDamier;
    ...
    JFrame plateau = new JFrame();
     
    		 test = new JLabel("test");
     
    		plateau.getContentPane().add(MonDamier, BorderLayout.CENTER);
     
     
    		 plateau.add(test, BorderLayout.SOUTH);
    		 plateau.setSize(500, 400);
    		 plateau.setLocationRelativeTo(null); 
    		 plateau.setResizable(false);
    		 //plateau.pack();
    		 plateau.setVisible(true);
    j’espère que cela pourra vous m'aider.

    Seb

  7. #7
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Dans ton premier extrait : je ne vois pas à quel moment le JPanel p est ajouté dans une autre JComponent (JFrame, JPanel, etc). Ce JPanel n'est donc pas visible à priori.

    Idriss

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

Discussions similaires

  1. [eZ Publish] CMS eZ Publish ajout d 'une nouvelle class
    Par carn971 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 19
    Dernier message: 24/06/2011, 16h37
  2. Réponses: 18
    Dernier message: 06/11/2006, 21h32
  3. Réponses: 3
    Dernier message: 19/06/2006, 10h26
  4. Réponses: 5
    Dernier message: 20/05/2006, 09h15
  5. [FLASH MX2004] Faire un array d'une nouvelle class
    Par fransouik dans le forum Flash
    Réponses: 9
    Dernier message: 27/12/2004, 17h39

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