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 :

java et GroupLayout


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Par défaut java et GroupLayout
    Bonjour,

    j'utilise java SE 6 et netbeans 5.5 sous windows XP

    Est-il possible de faire se superposer des composants en utilisant GroupLayout ?

    Il me semble que la lecture de l'API stipule que le "gap" entre 2 composants doit être >= 0. Existe-il la possibilité de d'avoir un "gap" négatif ?

    merci

  2. #2
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Je ne pense pas que ça puisse se faire tel quel. Une solution serais d'utiliser un JPanel avec null layout pour les éléments devant se superposer...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Par défaut java et grouplayout
    Merci pour la réponse, J

    e cherche à présenter un jeu de cartes où chaque carte
    chevauche la précédente et est chevauchée par la suivante et je pensais qu'il serait possible de le faire avec GroupLayout ou matisse sous netbeans

    à bientôt de vous lire
    claude

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Le plus rapide serait sans doute de redéfinir un LayoutManager spécial.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    avec un GridBagLayout c'est faisable :-)

    idee:
    tu as une carte qui prend un height de 2 en gridx=0 gridy=0
    la suivante prend egalement un height de 2 mais commence en gridx=0 et gridy=1

    ces deux cartes seront "superposer".

  6. #6
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Tu peux aussi jeter un coup d'oeil au "Transparent Layout" https://transparentlayout.dev.java.net/

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 6
    Par défaut Probleme avec la classe GroupLayout
    bonjour, voila mon probleme c'est sur la copilation d'un fichier .java
    qui est une interface graphique JFRAME, mais quand je la compile sous window ou linux ca m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cannot find symbol class GroupLayout
    package javax.swing.LayoutStyle does not exist

    le programme est :
    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
     
     
    import javax.swing.GroupLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
     
    public class Main extends JFrame {
      private 
        JTextField nom = new JTextField(8), 
        ancienMdp = new JTextField(8), 
        nouveauMdp = new JTextField(8), 
        nouveauMdpBis = new JTextField(8);
      private 
        JButton lancer = new JButton("Lancer la modification");
     
      public Main() {
        GroupLayout layout = new GroupLayout(getContentPane());
        this.setLayout(layout);
        layout.setAutoCreateContainerGaps(true);
        layout.setAutoCreateGaps(true);
        // Création des labels (ils seront désignés 2 fois pour le positionnement
        // horizontal et pour le positionnement vertical)
        JLabel 
            labelNom = new JLabel("Nom : "),
            labelAncienMdp = new JLabel("Mot de passe :"),
            labelNouveauMdp = new JLabel("Nouveau mot de passe :"),
            labelNouveauMdpBis = new JLabel("Retaper le nouveau mot de passe :");
        // Le placement horizontal
        layout.setHorizontalGroup(layout.createParallelGroup()
            .addGroup(layout.createParallelGroup()      
                // le groupe pour la saisie des infos :
                //   - un groupe à gauche pour les labels
                //   - un groupe à droite pour les textfields.
                .addGroup(layout.createSequentialGroup()
                    // Le groupe des labels
                    .addGroup(layout.createParallelGroup()  
                        .addComponent(labelNom)
                        .addComponent(labelAncienMdp)
                        .addComponent(labelNouveauMdp)
                        .addComponent(labelNouveauMdpBis)
                    )
                    // Le groupe des textfields
                    .addGroup(layout.createParallelGroup()
                        .addComponent(nom)
                        .addComponent(ancienMdp)
                        .addComponent(nouveauMdp)
                        .addComponent(nouveauMdpBis)
                    )
                )
            ) // Fin du groupe pour la saisie des infos
    //        // Remarque : il est aussi possible de décomposer en groupes explicites
    //        // si les groupes sont trop complexes :
    //        GroupLayout.ParallelGroup groupeLabels = layout.createParallelGroup();
    //        group.addGroup(groupeLabels);
    //        groupeLabels.addComponent(labelNom);
    //        ...
            // Ajoute le bouton en bas
            // Pour cet exercice on souhaite que le bouton s'étale sur toute la largeur
            // de la fenêtre. Par défaut, un bouton ne s'étend pas et il faut donc
            // le préciser.
            .addComponent(lancer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Integer.MAX_VALUE));
        // Le placement vertical
        layout.setVerticalGroup(layout.createSequentialGroup()
            // Le groupe pour la saisie des infos
            .addGroup(layout.createSequentialGroup()
                // Le groupe pour la saisie du nom
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(labelNom)
                    .addComponent(nom)
                )
                // Le groupe pour la saisie de l'ancien mot de passe
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(labelAncienMdp)
                    .addComponent(ancienMdp)
                )
                //
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(labelNouveauMdp)
                    .addComponent(nouveauMdp)
                )
                //
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(labelNouveauMdpBis)
                    .addComponent(nouveauMdpBis)
                )
          )
          .addComponent(lancer)
        );
        this.pack();
        this.setVisible(true);
      }
     
      public static void main(String[] args) {
        new Main();
      }
    }
    merci d'avance

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

Discussions similaires

  1. [NB6b2] Comment prendre GroupLayout de Java 6
    Par gifffftane dans le forum NetBeans
    Réponses: 3
    Dernier message: 01/11/2007, 23h04
  2. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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