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 :

Laisser du vide dans un JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut Laisser du vide dans un JPanel
    Bonjour,

    voilà dans un JScrollPane, j'ai un JPanel (appelons le mainPanel) qui fait 400 pixels de haut et est configuré avec un BoxLayout vertical. Appelons le mainPanel.

    Dans ce mainPanel, j'ajoute et je retire dynamiquement des 'sous panels' qui, en preferred size devraient faire disons 100 pixels de haut.

    Mon souci est que j'aimerais que tous mes sous panels fassent systématiquement 100 pixels de haut, qu'il reste de la place dans le mainPanel ou pas. Ainsi, si j'ai:

    - un seul sous-panel, il prendra 100 pixels et 300 pixels seront libres dans le mainPanel (actuellement, un seul sous-panel prends systématiquement toute la place dispo, soit les 400 pixels).

    - deux sous-panels, ils prendront 2x100 pixels, et 200 pixels seront libres dans le mainPanel (actuellement, chaque sous panel prends la moitié de la place dispo, soit 200 pixels chacun).

    - strictement plus de 4 sous-panels, mon mainPanel étant dans un JScrollPane, chaque sous panel devrait faire 100 pixels et la scrollbar veticale activée.

    Y a-t-il un moyen simple de faire ceci avec une propriété des JPane, ie. sans avoir à sous-classer JPanel et ainsi pouvoir mettre en place ce genre de chose directement dans l'éditeur visuel de NetBeans ou d'Eclipse.

    Je ne veux pas contraindre mes sous-panels avec un 'maximum size' de fixé, car je voudrait qu'ils calculent eux même leur place nécessaire (idéale) pour s'afficher, mais je veux qu'ils n'utilisent pas plus que ce dont ils ont besoin.

    Merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Salut,

    Je ne suis pas certain d'avoir bien compris ton problème, mais en ajoutant une glue
    Comme dernier élément de ton mainPanel ça n'irait pas ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Par défaut
    Tu veux que ton scrollPane parte d'une hauteur faible et aille jusqu'au max de 300 et que apres l'ascenseur prenne le relai ?


    Dans ce car, c'est peux etre ton scrollPane qui devrait etre dans un autre JPanel.

  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
    Je crois qu'un BoxLayout fait ce que tu cherches.
    "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 tu peut faire ca facilement.

    L'astuce c'est d'ajouter un "dummy panel" qui va jouer le pousseur par en bas.

    J'explique:
    Tu as 3 ou 4 panel [combien tu as dit?] dans ton principal container avec chacun son layout. Tu rajoute dedans des elements tout a fait normalement et une fois que ta fini, tu les ajoute a ton container principal qui lui est en GridBagLayout.
    En bas de ces panel tu rajoute un panel bidon et tu lui donne un weighty sur 1 et un FILL sur VERTICAL.
    Et voila, quand un panel est caché, le panel bidon recuperera sa place et les autres garderont leur preferedSize (calculee en fonction des sous-component si tu la precise pas).

  6. #6
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Pourquoi utiliser un panel bidon quand on peut tout bêtement utiliser une glue (cf javax.swing.Box.createHorizontalGlue() et createVerticalGlue()) ?

  7. #7
    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
    Citation Envoyé par Gfx
    Pourquoi utiliser un panel bidon quand on peut tout bêtement utiliser une glue (cf javax.swing.Box.createHorizontalGlue() et createVerticalGlue()) ?
    parce que j'ai comme l'impression qu'il a dut mal avec le BoxLayout et et je lui propose une solution simple et efficace ?


    (en plus le create-Horizontal/Vertical-Glue renvoi aussi une sorte de Component bidon et donc finalement le resultat est presque pareil)

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/10/2008, 20h26
  2. Dessiner dans un JPanel
    Par Oliveuh dans le forum Composants
    Réponses: 5
    Dernier message: 19/07/2004, 12h13
  3. Table vide dans une BD
    Par Riouxe21 dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 19h48
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  5. Update de date vide dans une table
    Par gidebo dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2004, 16h48

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