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 :

pack() et MinimumSize


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut pack() et MinimumSize
    Bonjour,

    j'ai un JDialog avec un simple BorderLayout, à l'intérieur duquel j'affiche une JList et un panel contenant des boutons gérant la liste.

    Je voudrais que cette JList est une dimension minimale, j'utilise pour cela la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jList.setMinimumSize(new Dimension(w, h));
    Cela fonctionne lors du redimensionnement du JDialog, mais pas avec la méthode pack() de ce même JDialog.
    En effet, si ma JList est vide, lorsque je fais un pack(), la JList est de dimension 0 !

    Pourquoi le pack() ne tient-il pas compte de cette dimension minimum ? Que puis-je faire pour qu'il en tienne compte ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    J'avais mal lu la doc ! Sorry !
    La méthode setMinimumSize(Dimension) ne permet pas de dire au composant de ne pas se dimensionner à une taille inférieur à getMinimumSize(), mais de ne plus être visible si sa taille est inférieur a celle de getMinimumSize().

    Ce n'est donc pas la bonne voie !

  3. #3
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Le pack() ajuste la window à la dimension préférée (setPreferredSize()), non à la dimension minimum.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Il suffit de surcharger la méthode pack() ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @Override
    	public void pack() {
    		if (((DefaultListModel)jList.getModel()).isEmpty()) {
    			jList.setPreferredSize(jList.getMinimumSize());
    		}
    		else {
    			jList.setPreferredSize(null);
    		}
    		super.pack();
    	}

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/08/2004, 10h11
  2. où trouver le numéro du service pack
    Par joker180 dans le forum MFC
    Réponses: 4
    Dernier message: 01/07/2004, 11h15
  3. Pack de Libairies Pour Dev C++
    Par nerv dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 30/06/2004, 23h36
  4. [ALGORITHME] a propos du bin packing
    Par barbot dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 05/01/2004, 23h27
  5. Qu'est-ce que Packed Record ?
    Par - Robby - dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2003, 11h39

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