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 :

Problème de taille d'un JPanel dans un GridLayout


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Problème de taille d'un JPanel dans un GridLayout
    Bonjour, je travaille actuellement sur un projet d'explorateur de fichiers.
    Voici une partie du code de mon appli.
    Tt d'abord la classe principal, qui contient 3 onglets
    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
     
    class IHM extends JFrame{
        public IHM() {
            this.setSize(640,480);
            this.setVisible(true);
     
            JTabbedPane pane = new JTabbedPane();
     
         //Création des 3 onglets
            Favoris fav = new Favoris();
            JPanel gro = new JPanel();
            Classique cla = new Classique();
     
         //Ajout des 3 onglets
            pane.addTab("Favoris", fav);
            pane.addTab("Groupe", gro);
            pane.addTab("Classique", cla);
     
         //Ajout du conteneur des onglets à la fenêtre
            this.add(pane);
        }
     
        public static void main(String args[]){
            IHM explo = new IHM();
        }
    }
    L'onglet qui m'intéresse est l'onglet "Classique" de type JPanel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Classique extends JPanel{   
        public Classique(){
            //le gestionnaires de mise en forme de l'onglet "Classique"
            GridLayout GL = new GridLayout(1,2); //contient 1 ligne et 2 cases
            this.setLayout(GL);     
     
            //les 2 éléments de l'interface de l'explorateur classique
            Arbre tree = new Arbre(false);
            this.add(tree);
            this.add(tree.listFic);
    Et enfin, la classe Arbre (j'ai récupéré le code sur le Net):
    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
    public class Arbre extends JPanel {
        public Arbre(final boolean seeFile) throws HeadlessException
        {
     
            tree = new JTree();
            racine = new NodeWithFile("Poste de travail"); //racine
            final DefaultTreeModel model = new DefaultTreeModel(racine);
            tree.setCellRenderer(new Renderer());
            /* code du listener ... */
            tree.setModel(model);
            scrollpane = new JScrollPane();
            scrollpane.getViewport().add(tree, null);
     
            Dimension d=new java.awt.Dimension(200,300);
            scrollpane.setPreferredSize(d);//dimPanel
            super.add(scrollpane);
    mon problème est que mon arborescence n'occupe qu'une petite partie de l'espace (en l'occurence elle a une taille de 200*300 pixels)
    Ce que je voudrais c'est qu'elle occupe tout l'espace possible de la cellule du GridLayout dans laquelle elle se situe

    je ne sais pas si j'ai été très clair, mais si vous avez des questions sur mon code n'hésitez pas

  2. #2
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut
    sur ton dernier code que tu à donnée essai de faire ca:

    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
     
    public class Arbre extends JPanel {
        public Arbre(final boolean seeFile) throws HeadlessException
        {
     
            super(new BorderLayout());
     
     
     
     
            tree = new JTree();
            racine = new NodeWithFile("Poste de travail"); //racine
            final DefaultTreeModel model = new DefaultTreeModel(racine);
            tree.setCellRenderer(new Renderer());
            /* code du listener ... */
            tree.setModel(model);
            scrollpane = new JScrollPane();
            scrollpane.getViewport().add(tree, null);
     
            Dimension d=new java.awt.Dimension(200,300);
            scrollpane.setPreferredSize(d);//dimPanel
     
     
     
     
            super.add(scrollpane, BorderLayout.CENTER);

    meme si je trouve que dans ce cas la, tu aurais eu meilleurs temps, avec ta class Arbre, d'hériter de JTree plutot que de JPanel...

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    merci bcp saod, ça marche impec
    par contre, est ce que tu pourrais m'expliquer un peu en quoi ça correspond c'est deux lignes ?
    si je comprends bien c'est un BorderLayout pour la classe Arbre et c'est grace à ce dernier que mon arborescence occupe tt l'espace ...

    tu aurais eu meilleurs temps, avec ta class Arbre, d'hériter de JTree plutot que de JPanel...
    je pense aussi que ce serait mieux, mais comme je l'ai dit, c'est un code que j'ai récupéré sur le Net, donc si je dois tt modifié je vais perdre le benef du temps gagné

  4. #4
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par ZamZam340
    merci bcp saod, ça marche impec
    par contre, est ce que tu pourrais m'expliquer un peu en quoi ça correspond c'est deux lignes ?
    si je comprends bien c'est un BorderLayout pour la classe Arbre et c'est grace à ce dernier que mon arborescence occupe tt l'espace ...
    En java on utilise des layouts pour positionner les composants. tu as une petite explication ici sur les différents layout qui existe. tu as aussi des info dans la FAC...

    sinon pour ces 2 lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super(new BorderLayout());
    Permet d'appliquer le layout: BorderLayout au JPanel que tu as hérité...

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super.add(scrollpane, BorderLayout.CENTER);
    Permet de positionner ton scrollpane au centre du borderLayout

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut


    ça m'a permis d'avancer, c'est super

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

Discussions similaires

  1. Problème d'affichage d'un JPanel dans un JFrame.
    Par Patrick95500 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 18/09/2014, 13h51
  2. ajuster la taille d'un composant dans un GridLayout
    Par mouss4rs dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 07/06/2008, 01h58
  3. Réponses: 7
    Dernier message: 04/06/2006, 17h00
  4. Problème de taille après suppression de lignes dans un recordset...
    Par nikko_54 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/04/2006, 22h18
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 09h41

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