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 :

jPanel, et positionnement des éléments autour


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 77
    Points : 56
    Points
    56
    Par défaut jPanel, et positionnement des éléments autour
    Bonjour,

    mon problème :
    j'ai un gros jPanel (jPanel1) dans lequel je crée d'autres jPanel (des boites toutes rouges pour le moment). J'ai fait ce qu'il fallait pour pouvoir déplacer ses boites de couleur avec la souris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private void jPanel2MouseDragged(java.awt.event.MouseEvent evt) {
        jPanel2.setLocation(evt.getXOnScreen()-8-jPanel2.getWidth()/2, evt.getYOnScreen()-50-jPanel2.getHeight()/2);
    }
    (j'ai du mettre les (-8,-50), parce que sinon la souris était mal placée par rapport au jPanel...). Si vous savez d'où ça vient, ça m'intéresse ^^
    Bref. Tout va bien, mes jPanel se déplacent.
    Seulement, lorsque je change la taille du gros jPanel qui contient tous les autres (les boites rouges), toutes les boites de couleur se remettent à leur place du début (ignorant le fait que je les ai fait bouger).

    Je pense savoir d'où provient le problème, mais je ne sais pas comment le résoudre :
    je travaille sous NetBeans qui crée plus ou moins tout seul mon interface graphique et il m'impose de remplir ses champs "space around component" (c'est comme ça qu'il place les éléments sur ma fenêtre). Et dès que je change la taille du gros jPanel, il remet les boites rouges dans cette configuration initiale.

    Merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    Bon, j'ai trouvé la solution (après quelques bonnes heures de recherche).

    En fait, netbeans faisait automatiquement quelque chose comme :

    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
    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addGap(39, 39, 39)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(398, Short.MAX_VALUE))
            );
            jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .addGap(93, 93, 93)
                            .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .addGap(147, 147, 147)
                            .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addContainerGap(354, Short.MAX_VALUE))
            );
    J'ai donc désactivé le LayoutManager sur mes JPanel avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LayoutManager toto = jPanel1.getLayout();
            toto.removeLayoutComponent(jPanel3);
            toto.removeLayoutComponent(jPanel2);
    voilou !

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

Discussions similaires

  1. Positionnement des éléments
    Par zooffy dans le forum Silverlight
    Réponses: 8
    Dernier message: 30/04/2009, 15h28
  2. Pb pour positionner des éléments
    Par cissou06 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/07/2007, 18h55
  3. Positionner des éléments dans une cellule de tableau
    Par Rémy29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 31/07/2006, 17h33
  4. Positionner des éléments dans un formulaire
    Par Choupinou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/07/2006, 16h36
  5. Réponses: 3
    Dernier message: 26/01/2005, 15h21

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