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 :

Problème affichage JPanel


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut Problème affichage JPanel
    Bonjour,
    Voilà j'ai un petit soucis d'affichage avec un JPanel.
    J'ai un "conteneur" qui contient mon panel "jeu". Le panel "jeu" est organisé en GridLayout(3,3,1,1) et je lui ajoute 9 panels jaunes. Seulement, les cases jaunes ne s'affichent pas, seul le fond vert du panel "jeu" est affiché.
    Quelqu'un aurait-il une solutions pour afficher mes cases jaunes ?
    Merci d'avance pour vos réponses.

    Voici mon code:
    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
     
    class choisir_jeu implements ActionListener
        {
            public void actionPerformed(ActionEvent e)
            {
                if(choix_jeu.getSelectedIndex() == 1)
                {
                    conteneur.remove(jeu);
                    jeu = new JPanel(new GridLayout(3,3,1,1));
                    jeu.setBackground(Color.GREEN);
                    jeu.setBounds(conteneur.getWidth()/3,0,2*conteneur.getWidth()/3,conteneur.getHeight());
     
                    pan = new JPanel[3][3];
                    for(int i = 0; i < 3; i++)
                    {
                        for(int j = 0; j < 3; j++)
                        {
                            JPanel panel = new JPanel();
                            pan[i][j] = panel;
                            jeu.add(panel);
                            panel.setBackground(Color.BLACK);
                            panel.repaint();
                        }
                    }
                    conteneur.add(jeu);
                    conteneur.repaint();
                }
            }
        }

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu ne devrais pas passer par pleins de Panel pour la présentation graphique.
    Un seul suffit. A toi de dessiner aux bonnes coordonnées. Le code sera plus simple et t'évitera de modifier les components à la volée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut
    EN fait les n JPanel que j'ajoute au GridLayout sont des Panels qui sont spécifiques à chaque jeu (à savoir morpion, othello et puissance 4), ici je met JPanel par simple test. Donc je dois garder ce formatage. Ce Listener me permet de changer de jeu, d'où le conteneur.remove(jeu) quand on change de jeu.
    N'y a-t-il pas un moyen d'afficher ces cases ?

    EDIT: pour être précis, mes panels spécifiques savent à quelle case du jeu ils correspondent et la manière dont ils doivent s'afficher selon le contenu de cette case.

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Je ne comprends pas : ton interface avec tous les panels permet de choisir un jeu, ou alors ton interface permet de jouer à pleins de jeux en même temps ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Par défaut
    Salut,

    Si j'ai bien compris, il y a une sorte de menu qui permet de sélectionner le jeu et en fonction de cela, l'interface est repeinte!

    Essais d'imposer une taille minimale à tes panels, ça pourrait peut être régler ton problème!

    Mais comme l'a dit dinobogan, utiliser des dessins aux bonnes coordonnées serait peut être plus simple!

  6. #6
    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
    Alors juste en passant comme ça , les composant swing ne sont vraiment pas faits pour être utilisés en tant qu'éléments d'un jeu, tu vas vite avoir des problèmes avec les Layouts &cie.

    Je te conseille plutôt d'utiliser un unique composant sur lequel tu dessineras l'ensemble des éléments de ton jeu via la redéfinition de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected void paintComponent(Graphics g)

    Sinon ce que tu cherches pour mettre à jour tes panels est la méthode revalidate de ton conteneur.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut
    J'ai fais comme sinok l'a dit et tout marche nickel.
    Un grand merci à vous tous

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

Discussions similaires

  1. Problèmes affichage JPanel
    Par Myssteriion dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/01/2013, 16h17
  2. Problème affichage de JPanel
    Par spike2 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 31/01/2010, 02h43
  3. Problème affichage JPanel dans JFrame
    Par Papipen dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 18/06/2009, 20h45
  4. Problème affichage Image Jpanel
    Par lerorodu51 dans le forum NetBeans
    Réponses: 17
    Dernier message: 10/06/2009, 19h43
  5. problème affichage JPanel dans un JPanel
    Par rburney dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/04/2008, 11h36

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