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 :

JScrollPane et JPanel - aucune scrollbar n'apparaît


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par défaut JScrollPane et JPanel - aucune scrollbar n'apparaît
    Bonsoir à tous,

    Je suis entrain de développer une petite application dont le frontend se base sur Swing. Mon petit problème est le suivant : la frame contient un JScrollPane qui contient un JPanel. Malgré le fait que je diminue ma fenêtre, aucune scrollbar n'apparaît

    Voici un code tout ce qu'il y a de plus basique :

    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
     
            // la frame
            JFrame frame = new JFrame();
            frame.setLayout(new FlowLayout());
            frame.setPreferredSize(new Dimension(500, 500));
     
            // le panel qui contient les labels
            JPanel panel = new JPanel();
            panel.setLayout(new FlowLayout());
            panel.setPreferredSize(new Dimension(500, 500));
            for (int i = 0; i < 500; i++) {
                panel.add(new JLabel("text " + i));
            }
     
          // la scrollpane qui m'a fait verser toutes les larmes de mon corps 
          JScrollPane scrollPane = new JScrollPane(panel);
     
          frame.add(scrollPane);
          frame.pack();
          frame.setVisible(true);
    J'imagine que j'ai loupé un petit détail mais j'ignore où... Un grand merci à tous ceux qui ont essayé / pu m'aider.

    Coyote

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    Ce n'est pas au panel qu'il faut donner une Dimension, mais au scroll.

    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
    // la frame
    JFrame frame = new JFrame();
    frame.setLayout(new FlowLayout());
    // frame.setPreferredSize(new Dimension(500, 500));
     
    // le panel qui contient les labels
    JPanel panel = new JPanel();
    panel.setLayout(new FlowLayout());
    // panel.setPreferredSize(new Dimension(500, 500));
    for (int i = 0; i < 500; i++) {
    	panel.add(new JLabel("text " + i));
    }
     
    // la scrollpane qui m'a fait verser toutes les larmes de mon corps
    JScrollPane scrollPane = new JScrollPane(panel);
    scrollPane.setPreferredSize(new Dimension(500, 500));
    frame.add(scrollPane);
    frame.pack();
    frame.setVisible(true);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 68
    Par défaut
    Merci! Cela fonctionne parfaitement, par contre je n'ai pas réussi à faire apparaître la scrollbar. Petite question : le fait d'attribuer des dimensions au panel contenu dans le JScrollPane via setSize() ou setPreferreredSize() a-t-il une incidence sur le comportement de la scrollbar ?

    Le design de la frame principale est le suivant :

    1. Le layout de la frame est un FlowLayout. Je lui ajoute un menu (JMenuBar) et finalement un panel placé dans une JScrollPane, appelons le DesktopPanel.

    2. Le DesktopPanel utilise un GridBagLayout et est constitué de 5 panels : un panel vide en haut et en bas. Un panel vide à gauche et à droite. Et enfin, au centre, un panel que je complète et qui me sert de fiche (SheetPanel). Les panels vides servent, comme tu t'en doutes de remplissage, un peu comme dans Word ou Writer.

    3. Le panel vide du haut et du bas prennent toute la place horizontalement. Les panels latéraux prennent toute la place verticalement et ont un poids horizontal de 0.5 chacun. Une taille est attribuée au SheetPanel qui prend toute la place verticalement et a un poids de 0.0 horizontalement.

    je ne sais pas si tout est clair, si il manque quelque chose. A mon sens, ce sont les GridBagConstraints qui posent problèmes et qui empêchent la scrollbar de jouer correctement son rôle.

    Merci beaucoup!

    Coyote

  4. #4
    Membre actif
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Par défaut Le layout du JPanel est important
    Un grand merci pour la réponse!! Je cherchait depuis des jours pourquoi le scrollePane ne fonctionnait pas , j'ajoute la fameuse scrollPane.setPreferredSize(new Dimension(500,500)); et ça marche Mais pourquoi??..enfin bon et comme je cherchai à appliquer cela à plusieurs Jpanel différent, stupeur : ça ne fonctionne que pour l'un d'eux... je pleure puis je cherche et finalement il faut visiblement mattre le Layout à Free Design

    Merci visiwi

Discussions similaires

  1. JScrollPane et JPanel
    Par Schyzophrenic dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 04/07/2008, 19h48
  2. JscrollPane et Jpanel
    Par restricteur dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 21/05/2008, 21h34
  3. JscrollPane, Textfield et la scrollbar
    Par dest dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/04/2007, 20h48
  4. JScrollPane et JPanel
    Par elfiestador dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 26/12/2006, 16h43
  5. JScrollPane Graphics/ JPanel
    Par daedric dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 26/05/2006, 12h28

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