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 :

Un problème d'affichage?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut Un problème d'affichage?
    Bonjour,

    Je désire faire une grille de JButton dans un GridLayout 8 par 8. Cependant il semble y avoir un petit problème d'affichage.

    J'ai 2 classes: Main (l'interface graphique), et Case (JButton redéfinit afin d'y entrer des coordonnées X Y).

    Main.java
    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
     
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Main extends JFrame {
        JPanel panelGrille;        
     
        public Main() 
        {
            Container c = this.getContentPane();           
            panelGrille = new JPanel(new GridLayout(8,2));        
            c.add(panelGrille);
     
     
            genererBoutons();
        }
        public void genererBoutons()
        {
            int i = 1; 
            int j = 1;
     
            while (i <= 8)
            {
                while (j <= 8)
                {
                    panelGrille.add(new Case(i, j));                
                    j++;
                }
                j = 1;
                i++;
            }        
        }
     
        public static void main(String[] args) 
        {
            Main monApp = new Main();
            monApp.setSize(600,600);
            monApp.setTitle("Jeux d'échec - Hugo Bédard & Chhunly Prum");        
            monApp.show();
        }
     
    }
    Case.java
    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
     
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
     
    public class Case extends JButton {
     
        int x = 0;
        int y = 0;      
     
        public Case(int xTemp, int yTemp) 
        {
            setX(xTemp);
            setY(yTemp);
            setText("A");
            addActionListener(new ActionListener() 
            {
                  public void actionPerformed(ActionEvent e) 
                  {
                      System.out.println("X:" + x + "Y:" + y);
                  }
             }
           );
     
     
        }
     
        public void setX(int xTemp)
        {
            x = xTemp;
        }
        public void setY(int yTemp)
        {
            y = yTemp;
        }
        public int getX()
        {
            return x;
        }
        public int getY()
        {
            return y;
        }
    }
    Tous les boutons s'affiche un par dessus l'autre dans la première case de mon GridLayout. (Voir Attachement). Si quelqu'un peu m'aider et me lancer sur une piste, ce serait très apprécié.
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 110
    Par défaut
    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
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Main extends JFrame {
        JPanel panelGrille;        
     
        public Main() 
        {
                     
            panelGrille = new JPanel(new GridLayout(8,8));        //tu avais 8,2
            genererBoutons();
            setContentPane(panelGrille);
        }
        public void genererBoutons()
        {
            int i = 1; 
            int j = 1;
            
            while (i <= 8)
            {
                while (j <= 8)
                {
                    panelGrille.add(new Case(i, j));                
                    j++;
                }
                j = 1;
                i++;
            }        
        }
     
        public static void main(String[] args) 
        {
            Main monApp = new Main();
            monApp.setSize(600,600);
            monApp.setTitle("Jeux d'échec - Hugo Bédard & Chhunly Prum");        
            monApp.show();
        }
        
    }

    ps : pourquoi tu caches le nom de ton applications dans la capture? puisse qu'on peut le savoir en regardant le code?

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut
    Un réflexe de cacher la titlebar.

    GridLayout(8,8) ne change rien D'autres pistes?

  4. #4
    Membre éprouvé Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Par défaut
    J'ai testé cette méthode et cela ne fonctionne toujours pas et j'avoue que quelque chose m'échappe car je programme en java tous les jours depuis un bout de temps et je ne vois pas se qui cloche.
    L'erreur doit-être minime

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    je suis pas sur que faire une grille de boutons soit une bonne idée pour representer un échiquier. Je post un truc que j'ai trouvé sur internet. Si ça peut t'aider...
    Fichiers attachés Fichiers attachés

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut
    Pas commode comme bug. Aussi, ça fait la même chose avec n'importe quel JComponent....


  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    remplace tes Case par des JButton dans ton code de depart et ça marche trè bien donc ça vient de ta classe Case

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Boulet!!! dans Case tu redefinie getX, getY , setX et setY qui sont des methodes de JComponent donts herite JButton dont forcement ça plante. Change le nom de tes accesseurs et tous ira bien.

  9. #9
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut
    OH GOD!

    Hahahaha. Je te remerçi!

    You're the man.

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

Discussions similaires

  1. Problème d'affichage
    Par mustang-gx dans le forum Bases de données
    Réponses: 8
    Dernier message: 26/01/2005, 22h54
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 10h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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