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

Agents de placement/Fenêtres Java Discussion :

GridLayout dans BorderLayout?


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut GridLayout dans BorderLayout?
    BOnjour
    je veux mettre une grilayout dans mon borderLayout

    mais je comprends pas prourquoi il me le prend pas

    d'avance merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    contenu = maFrame.getContentPane();
            placeur = new BorderLayout();
            maGrille = new GridLayout(3,3);
            contenu.setLayout(placeur);
            contenu.add(maGrille,placeur.CENTER);
    Plzzz pas de questions par MP.

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    un Gridlayout n'est pas un composant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    contenu = maFrame.getContentPane();
    placeur = new BorderLayout();
    contenu.setLayout(placeur);
    
    JPanel pan = new JPanel();
    maGrille = new GridLayout(3,3);
    pan.setLayout(maGrille);
    
    contenu.add(pan,placeur.CENTER);
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  3. #3
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    ah ok je m'en rappelerais

    merci

    alors j'ai tout fais ça marche nickel mais j'ai un probleme de placement

    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
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    /**
     *
     * @author KarKam Dvpt
     * @version 1.0
     */
     
    package ihm;
     
    import morpion.Zone;
     
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
    public class Ihm {
     
        private JFrame maFrame;
        /*Ma grille*/
        private Container contenu;
        private BorderLayout placeur;
        private GridLayout maGrille;
        private Zone[][] cases;
     
        /*Mes images*/
        private final ImageIcon CROIX = new ImageIcon("croix.gif");
        private final ImageIcon ROND = new ImageIcon("rond.gif");
        private final ImageIcon BLANC = new ImageIcon("blanc.gif");
        /*Barre de Menu*/
        private JMenuBar monMenu;
        private JMenu menuJeu;
        private JMenu menuOptions;
        private JMenuItem itemNouveau;
        private JMenuItem itemQuitter;
        private JMenuItem itemPropos;
     
        /*Mes listeners*/
        private ActionListener actionNouveau = new ActionNouveau();
        private ActionListener actionQuitter= new ActionQuitter();
        private ActionListener actionPropos = new ActionPropos();
        private MouseListener actionSouris = new ActionSouris();
     
        public Ihm() {
            maFrame= new JFrame("Morpion -- KarKam Dvpt.");
            maFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            maFrame.setResizable(false);
            maFrame.setSize(300,300);
            maFrame.setLocationRelativeTo(maFrame.getParent());
     
            /*Ma barre de menu*/
            monMenu = new JMenuBar();
            menuJeu = new JMenu("Jeu");
            menuOptions = new JMenu("Options");
            itemNouveau = new JMenuItem("Nouveau");
            itemNouveau.addActionListener(actionNouveau); 
            itemQuitter =  new JMenuItem("Quitter");
            itemQuitter.addActionListener(actionQuitter);
            itemPropos = new JMenuItem("A propos...");
            itemPropos.addActionListener(actionPropos);
            maFrame.setJMenuBar(monMenu);
            monMenu.add(menuJeu);
            monMenu.add(menuOptions);
            menuJeu.add(itemNouveau);
            menuJeu.add(itemQuitter);
            menuOptions.add(itemPropos);
     
            /*Ma grille*/
            JPanel panCenter = new JPanel();
            JPanel panNord = new JPanel();
            JPanel panSud = new JPanel();
            JPanel panEst = new JPanel();
            JPanel panOuest = new JPanel();
            panEst.setBackground(Color.WHITE);
            panOuest.setBackground(Color.WHITE);
            panNord.setBackground(Color.WHITE);
            panSud.setBackground(Color.WHITE);
            contenu = maFrame.getContentPane();
            placeur = new BorderLayout();
            maGrille = new GridLayout(3,3);
            panCenter.setLayout(maGrille);
            contenu.setLayout(placeur);
            contenu.add(panCenter,placeur.CENTER);
            contenu.add(panOuest,placeur.WEST);
            contenu.add(panEst,placeur.EAST);
            contenu.add(panSud,placeur.SOUTH);
            contenu.add(panNord,placeur.NORTH);
     
     
            cases = new Zone[3][3];
            // Créer les cases du Morpion
    	for (int i = 0; i < cases.length; i++) {
    	    for (int j = 0; j < cases[i].length; j++) {
    		cases[i][j] = new Zone(i,j);
                    cases[i][j].setBorder(BorderFactory.createLineBorder(Color.YELLOW));
    	    }
    	}
     
             for (int i=0; i < cases.length;i ++){
              for (int j=0;j < cases[i].length;j++){
                  cases[i][j].setIcon(BLANC);
                  cases[i][j].addMouseListener(actionSouris);
              }
          }
            // construction des composants
          for (int i=0; i < cases.length;i ++){
              for (int j=0;j < cases[i].length;j++){
                  contenu.add(cases[i][j]);
              }
          }
     
            maFrame.setVisible(true);
        }
     
        public class ActionQuitter implements ActionListener{
            public void actionPerformed (ActionEvent e){
                System.exit(0);
            }
        }
        public class ActionPropos implements ActionListener{
            public void actionPerformed(ActionEvent e){
                JOptionPane.showMessageDialog(new JOptionPane(),"Morpion\nKarKam Dvpt.\nv1.0","Info",JOptionPane.INFORMATION_MESSAGE);
            }
        }
        public class ActionNouveau implements ActionListener{
            public void actionPerformed(ActionEvent e){
                for(int i=0;i< cases.length;i++){
                    for(int j=0;j<cases[i].length;j++){
                        cases[i][j].setIcon(BLANC);
                    }
                }
            }
        }
        public class ActionSouris implements MouseListener{
            public void mousePressed(MouseEvent e){
            if(SwingUtilities.isLeftMouseButton(e)){
                Zone z =(Zone)e.getSource();
                System.out.print("Click Gauche sur ("+z.getX()+","+z.getY()+")");
                //..
            }    
            }
            public void mouseReleased(MouseEvent e){
     
            }
            public void mouseEntered(MouseEvent e){
     
            }
            public void mouseExited(MouseEvent e){
     
            }
            public void mouseClicked(MouseEvent e){
     
            }
        }
     
    }
    Plzzz pas de questions par MP.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu pourrais le décrire car j'ai un peu la flemme de me fader toujt ton code pour pouvoir essayer de trouver...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    j'ai un borderlayout
    autour ce sont des panel blanc
    au center un panel qui contient un grid Layout
    ce gridlayout contient 3*3 JLabel

    autour de chaque case (JLabel) de mon morpion, j'ai mis une bordure Jaune
    et le carré noir c'est la case(2,2)

    voila d'avance merci
    Images attachées Images attachées  
    Plzzz pas de questions par MP.

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ajoutes tes JLabels à panCenter au lieu de contenu ça ira mieux...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    aaaah ça va mieux

    mais ils prennent pas leur place

    comme dans une grille 3*3

    j'en ai un seul

    moi qui voulait manipuler les layout en les imbriquant...
    Images attachées Images attachées  
    Plzzz pas de questions par MP.

  8. #8
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Tu fais bien ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
           // construction des composants
          for (int i=0; i < cases.length;i ++){
              for (int j=0;j < cases[i].length;j++){
                  panCenter.add(cases[i][j]);
              }
          }
    Que fais-tu dans le constructeur de Zone ?

    Petite remarque : les constantes BorderLayout.NORTH, etc, sont statiques => ne pas les utiliser en faisant placeur.NORTH.

  9. #9
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    Zone c'est une classe qui hérite de JLabel pour rajouter 2 méthode utiles apres

    ... voila

    une question en passant j'ai essayé de définir les size sur les JPanel mais ça marche pas
    comment définir la taille des espaces borderLayout.NORTH,SOUTH...etc
    Plzzz pas de questions par MP.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 89
    Points
    89
    Par défaut
    Salut

    une question en passant j'ai essayé de définir les size sur les JPanel mais ça marche pas
    comment définir la taille des espaces borderLayout.NORTH,SOUTH...etc
    Je crois que BorderLayout n'utilise que les preferredSize pour optimiser les emplacements, donc essaye de remplacer setSize() par setPreferredSize()

    Sinon tu peux montrer le code du consturcteur de zone?

  11. #11
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    ah oui je venais juste poster pour dire que j'aivais trouver le setPreferredSize
    ça marche imppec merci quand meme

    classe zone:
    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
    package morpion;
     
    import javax.swing.JLabel;
     
    public class Zone extends JLabel {
     
        private int x;
        private int y;
     
        public Zone(int i,int j) {
            super();
            this.x=i;
            this.y=j;
        }
     
        public int getX(){
            return this.x;
        }
     
        public int getY(){
            return this.y;
        }
    }
    Plzzz pas de questions par MP.

  12. #12
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    quand je clique dessus j'ai bien le retour que je clique sur la zone qui devrait etre a sa place

    alors j'en déduit que le ImageIcon ne se charge pas alors mais ya pas les border Jaune ??
    donc je m'interroge

    morpion
    Plzzz pas de questions par MP.

  13. #13
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par LeXo
    quand je clique dessus j'ai bien le retour que je clique sur la zone qui devrait etre a sa place

    alors j'en déduit que le ImageIcon ne se charge pas alors
    Tu m'excuseras mais j'ai rien compris...

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 89
    Points
    89
    Par défaut
    Essayes de remplacer getX par getHix et getY par getYgrec !!

  15. #15
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    je le modifies pour mettre un JOptionPane et que tu vois mais ça marche nickel mais je regarderais ton conseil

    mon probleme c l'affichage des mes zone(JLabel) dans mon gridLayout

    que l'image ne saffiche pas -> C'est un probleme de chargement mais je ne vois pas les bordures..??

    voila vous pouvez regarder et faite un clik gauche sur la zone grise

    Morpion
    Plzzz pas de questions par MP.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 89
    Points
    89
    Par défaut
    Ben en fait en appelant les méthodes de ta classe Zone getX et getY, tu surcharges les fonctions de JLabels éponymes (du même nom) qui sont utilisées pour placer le composant.

  17. #17
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    En fait, tu surcharges les méthode getX() et getY() de la classe JLabel (et plus précisément de JComponent). Du coup, je ferai ce que dit Loïc.

    Mais je ne suis pas sûr que ton problème vienne de là...

    [EDIT] Grillé...

  18. #18
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    j'ai pas vu ces méthode dans la classe JLabel

    mais oui c pas ce qui répond a ma question

    je voudrais bien voir mes 9 bordures jaunes dans ma grille
    Plzzz pas de questions par MP.

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 89
    Points
    89
    Par défaut
    Mais je ne suis pas sûr que ton problème vienne de là...

    En modifiant x et y par a et b dans le constructeur de Zone, j'obtiens bien une grille 3*3...
    C'était bien ca le probleme?

  20. #20
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Ca vient bien de là.
    Et en fait je comprends ce qu'il se passe. En fait la bordure que l'on observe dans la version "foireuse" (c'est pas méchant), est composée des 9 bordures placées aux pixels (0,0), (0,1), (0,2), (1,0), etc...
    Du coup elle est plus épaisse que celle de la version correcte, et c'est pour ça qu'on dirait qu'il n'y en a qu'une.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Plusieurs Gridlayout dans un borderlayout
    Par Xenthys dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 12/03/2013, 15h47
  2. Centrer un gridLayout dans une fenetre plein ecran
    Par jm49 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/03/2009, 14h29
  3. probleme avec GridLayout dans JPanel
    Par kortnor dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 04/08/2007, 19h03
  4. Creer un gridlayout dans un border layout
    Par rider74 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 22/10/2006, 13h31
  5. lecture de flux video dans borderLayout.CENTER
    Par Dsphinx dans le forum Multimédia
    Réponses: 5
    Dernier message: 04/08/2006, 17h30

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