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

avec Java Discussion :

les interfaces graphiques


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut les interfaces graphiques
    Bonjour,

    est ce que quelqu'un pourrait m'expliquer ce que font exactement les lignes que j'ai mises en rouge s'il vous plaît.



    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
     import java.awt.*;
    import javax.swing.*;
    
    /**
     * Interface graphique pour la saisie d'un nouveau mot de passe.
     */
    public class GUI extends JFrame {
    
      public GUI() {
        super("Saisie d'un nouveau mot de passe");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    
        JPanel nord = new JPanel();
        add(nord, BorderLayout.NORTH);
    
        JPanel labels = new JPanel();
        nord.setLayout(new BorderLayout());
        nord.add(labels, BorderLayout.WEST);
    
        labels.setLayout(new GridLayout(4, 0));
        labels.add(new JLabel("Nom de login :"));
        labels.add(new JLabel("Mot de passe :"));
        labels.add(new JLabel("Nouveau mot de passe :"));
        labels.add(new JLabel("Retapez le nouveau mot de passe :"));
      
        JPanel saisies = new JPanel();
        nord.add(saisies, BorderLayout.CENTER);
       
        saisies.setLayout(new GridLayout(4, 0));
        JTextField login = new JTextField(15);
        saisies.add(login);
        JPasswordField mdp = new JPasswordField(10);
        saisies.add(mdp);
        JPasswordField nouvMdp = new JPasswordField(10);
        saisies.add(nouvMdp);
        JPasswordField nouvMdp2 = new JPasswordField(10);
        saisies.add(nouvMdp2);
      
        JButton lancer = new JButton("Lancer la modification");
        add(lancer, BorderLayout.SOUTH);
        pack();
        setVisible(true);
      }
    
      public static void main(String[] args) {
        new GUI();
      }
    
    }

    Merci

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    La première défini le layout du composant JPanel . Les 2 suivantes ajoutent d'autres composant (2 JPanel) à différent endroit sur le premier JPanel.
    Si tu veux plus de renseignement sur le fonctionnement des layout fait une petite recherche sur ces mots clé& tu trouvera de nombreux tutoriels.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Bonjour ,

    quel est l'intérêt d'ajouter des panels à des panels (notamment dans cet exemple : ajouter les 2 panels au panel nord); pourquoi ne pas utiliser un seul panel et y disposer les éléments à l'aide des BorderLayout(nord, sud,etc...).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Bonjour,

    concernant les panels, j'ai juste compris qu'ils servent à contenir les composants....

    Mais je n'ai pas compris ces commentaires que j'ai mis en rouge dans le code...

    Les panels peuvent éviter la modification en largeur, hauteur ?
    (içi largeur=hauteur ? et longeur=longueur...non).


    Pourquoi a-t-on mis le panel centre et Ouest dans le panel nord...il y'a sûrement une raison...Est ce qu'il est conseillé de mettre tous les panels dans un même panel ?

    Dans quel cas, utilise-t-on le GroupLayout.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // On ajoute le tout au nord pour éviter la modification de la hauteur
        // des labels et des zones de saisies.
        JPanel nord = new JPanel();
        add(nord, BorderLayout.NORTH);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     // On place les labels à l'ouest pour éviter qu'ils se modifient
        // en largeur.
        JPanel labels = new JPanel();
        nord.setLayout(new BorderLayout());
        nord.add(labels, BorderLayout.WEST);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     // Les zones de saisies sont placées dans un panel au centre
        // pour permettre la modification de leur largeur.
        JPanel saisies = new JPanel();
        nord.add(saisies, BorderLayout.CENTER);

    MERCI

  5. #5
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Le principe est d'emboiter différents JPanel (presque tous les composants swing sont des JComponent ou JPanel), en jouant sur les layouts de chacun des JComponent.

    Certains layouts alignent les composants les uns à la suite des autres, d'autres les mettent sur les cotés, etc.

    Tu peux avoir un panel selon le layout BordeLayout, dans lequel tu places à son nord un panel où les composants seront alignés par un FlowLayout. Le résultat final est qu'on aura l'impression que en haut du panneau principal il y a plusieurs composants qui se suivent.

    Les commentaires te disent simplement où le code place le composant dans son conteneur (chose qui peut se déduire de la simple lecture du code, d'ailleurs) (ah, les commentaires...)

    Tu trouveras plein de choses intéressantes à Laying Out Components Within a Container.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    En fait, voici exactement ce que je n'ai pas compris des commentaires :


    pourquoi est ce que le fait d' ajouter le tout au nord évite la modification de la hauteur des labels et des zones de saisies.

    pourquoi est ce que placer les labels à l'ouest permet d'éviter qu'ils se modifient en largeur.

    Pourquoi est ce que placer les zones de saisies dans un panel au centre permet la modification de leur largeur.

  7. #7
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Tout cela vient des propriétés du BorderLayout, qui dispose les panneaux dans le conteneur. C'est le dispositif implicite des composants swing.

    Ce dispositif donne aux panneaux sur les cotés la place nécessaire, et au panneaux central toute la place disponible. Tout cela fait que, si tu augmentes la taille du conteneur, le panneau central augmentera de taille.

    Le comportement est exactement celui que tu décris, et que tu ne comprends pas. Ce n'est pas le fait d'ajouter au nord, sud, est ouest qui est important, c'est le fait du layout. Avec un autre layout, cela se comporterait autrement.

    Si ce dispositif ne te plait pas, tu peux choisir un autre layout en consultant ceci.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Ok, bien compris


    Merci bien pour toutes ces explications

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

Discussions similaires

  1. Livre sur les interfaces graphiques en java.
    Par zulot dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 22/11/2007, 01h10
  2. Designer pour les interfaces graphiques sous eclipse
    Par anas.eh dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/10/2007, 10h30
  3. Les tutoriels en français sur les Interfaces Graphiques
    Par Jerome Briot dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 04/09/2007, 21h44
  4. Quel outil pour créer les interfaces graphique en Java ?
    Par youp_db dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 11/01/2006, 07h30

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