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 dans une JFrame ok, mais JPanel dans un JScrollPane dans une JFrame non :(


Sujet :

Agents de placement/Fenêtres Java

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 26
    Points
    26
    Par défaut JPanel dans une JFrame ok, mais JPanel dans un JScrollPane dans une JFrame non :(
    Bonjour à tous

    Je ne m'en sors pas avec l'organisation des différents composants dans une JFrame

    Si je mets mes deux composants dans un JPanel, puis dans ma JFrame, j'ai bien le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ----------------------------
    |          Blabla          |
    |  radio1 o     o radio2   |
    |  radio1 o     o radio2   |
    |           x 30           |
    ----------------------------
    Si je mets mes deux composants dans un JPanel, puis dans un JScrollPane, et enfin dans ma JFrame, j'ai bien une fenêtre scrollable mais mon "Blabla" n'est plus à sa place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    -----------------------------
    |                           |
    |        radio1 o     o rad |
    |Blabla  radio1 o     o rad |
    |                 x 30      |
    -----------------------------
    Comment ça se fait ?
    Je souhaiterai avoir une fenêtre scrollable mais qui ressemble à la première.
    Help please !

    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
     
    label = JLabel("Blabla")
    radioPanel = JPanel()
    radioPanel.setLayout(GridLayout(30,5))
    // Remplissage du radioPanel avec mes 30 lignes de boutons radio...
     
    // Puis...
    mainPanel = JPanel()
    mainPanel.setSize(400, 500)
     
    mainPanel.add(label)
    mainPanel.add(radioPanel)
     
    scrollPane = JScrollPane(mainPanel)
     
    frame = JFrame()
    frame.setSize(400, 500)
    frame.add(mainPanel) // OK
    frame.add(scrollPane) // NOK

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    enlève la ligne
    En effet ton mainPanel est déjà dans ton JscrollPane, donc il ne sert à rien de l'ajouter à la frame (c'est d'ailleurs çà qui cause ton problème).

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par sinok Voir le message
    enlève la ligne
    En effet ton mainPanel est déjà dans ton JscrollPane, donc il ne sert à rien de l'ajouter à la frame (c'est d'ailleurs çà qui cause ton problème).
    Oui cette ligne n'est pas dans mon code, je l'ai juste ajoutée pour montrer les deux cas ( celui où ça marche et celui où ça marche pas ).

    J'ai donc bien seulement la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    frame.add(scrollPane)
    Une idée ?

  4. #4
    Membre confirmé Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 505
    Points
    505
    Par défaut
    C'est logique, par défaut un JPanel() utilise un FlowLayout. Les composants n'ayant plus de contraintes de place dans un JScrollPane, ils se mettent en ligne.

    As-tu essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mainPanel = JPanel(new BorderLayout());
    mainPanel.setSize(400, 500);
     
    mainPanel.add(label, BorderLayout.NORTH);
    mainPanel.add(radioPanel, BorderLayout.CENTER);

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par ngpub Voir le message
    C'est logique, par défaut un JPanel() utilise un FlowLayout. Les composants n'ayant plus de contraintes de place dans un JScrollPane, ils se mettent en ligne.
    Yes ça marche, merci beaucoup !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/03/2011, 21h53
  2. BufferedImage dans une classe héritant de JPanel
    Par guy_s dans le forum Graphisme
    Réponses: 0
    Dernier message: 29/05/2009, 23h56
  3. Fermer une JDialog modale à partir d'un bouton contenu dans un JPanel
    Par Alqualonde dans le forum Agents de placement/Fenêtres
    Réponses: 18
    Dernier message: 02/03/2007, 14h20
  4. transmettre evenement d'une JFrame a un JPanel
    Par mereyj dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 18/06/2005, 18h52
  5. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 16h17

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