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 :

[JCombobox] largeur du popup


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut [JCombobox] largeur du popup
    Bonjour,
    Je dois faire apparaître une grille avec pas mal de composants, aussi je suis assez limité en place.
    J'ai mes JCombobox qui prennent pas mal de place, et j'aimerais les diminuer.
    En fait, la largeur de ce composant est dépendant de la taille maxi des textes insérrés dans le combobox...
    Est il possible de faire en sorte que la zone, ai une taille fixe quand elle est fermée, et quand on clique dessus la zone qui apparaît est plus large...
    En clair : la combobox est fermée, elle fait 140 pixels de large.
    On clique sur la combobox, elle fait toujours 140 pixels, mais par contre la zone qui apparaît en dessous fait 250 pixels..
    Est ce possible ?????
    Merci de votre aide

  2. #2
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    En fait, je parle de la largeur du popup...
    Il n'y a vraiment aucun moyen de faire varier sa largeur ?

  3. #3
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Bonjour,
    J'insiste, mais c'est assez important.
    Personne ne sait comment faire pour fixer la largeur du popup d'un combo ???
    Mes textes sont tronqués.... c'est pas cool
    Merci d'avance.
    Michel

  4. #4
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    en jouant sur la police et les borders ca ne fonctionne pas?

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    Tu peux essayer de redéfinir l'UI du popup de ta combo.

    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 ComboUICustom extends BasicComboPopup
    {
        public ComboUICustom (JComboBox combo)
        {
            super(combo);
        }
     
        public Dimension getPreferredSize()
        {
            Dimension d =  super.getPreferredSize();
            //Fixe la taille en dur mais il vaut mieux l'adapter au contenu
            d.width = 140;
            return d;
        }
    }

  6. #6
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    Citation Envoyé par Guybrush
    Tu peux essayer de redéfinir l'UI du popup de ta combo.
    Par expérience, quand on fixe une taille, on peu avoir l'impression que ca ne réagit pas. Il faut alors aussi appeller setMinimumSize et setMaximuSize

  7. #7
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Oh super ! merci bien.
    J'essaye et je vous tiens au courant.

  8. #8
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Question bête, comment fait on, après pour l'appliquer à ma combo ??
    Doit on passer par le UIManager ?
    Merci

  9. #9
    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
    C'est faisable avec la méthode setUI(new ComboUICustom());.
    "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.

  10. #10
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Ah d'accord...
    Et après j'imagine qu'il faut faire un updateUI ???
    Merci en tout cas.

  11. #11
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Lorsque j'essaie de faire le setUI() j'ai le message :
    La méthode setUI(ComboBoxUI) du type JComboBox ne s'applique pas aux arguments (ComboUICustom)
    Je craque !!!

  12. #12
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    Il faut redéfinir le ComboUI de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class ComboUI extends extends BasicComboBoxUI
    {
        protected ComboPopup createPopup()
        {
            ComboUICustom popup = new ComboUICustom ( comboBox );
            popup.getAccessibleContext().setAccessibleParent(comboBox);
            return popup;
        }
     
    }
    et faire ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    combo.setUI(new ComboUI());
    pas besoin d'appeler updateUI(), je pense même qu'il ne faut pas l'appeler sinon tu vas réappliquer l'ui du look and feel.

  13. #13
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    Et bien voilà, ça marche super dans le principe, sauf que...
    Le popup est plus large, mais la zone d'affichage du popup n'a pas bougé.
    C'est à dire que j'ai une zone d'affichage (blanche) où apparaît les textes, et de chaque côté une zone grises où il n'y a rien dedans...
    Je n'ai jamais été aussi proche du résultat..... mais....

  14. #14
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par défaut
    essaye peut etre de redimensionner aussi la list affichée dans le popup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public Dimension getPreferredSize() 
        { 
            Dimension d =  super.getPreferredSize(); 
            //Fixe la taille en dur mais il vaut mieux l'adapter au contenu 
            d.width = 140; 
            list.setPreferredSize(d);
            list.setMinimumSize(d);
            list.setMaximumSize(d);
            return d; 
        }
    c'est peut etre pas tres propre mais ca doit marcher...
    Remarque : tu peux peut etre aussi essayer de redimensionner ta list dans la méthode configureList() de l'UI. Ca evitera de redimensionner la list à chaque fois.

  15. #15
    Membre éclairé Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 227
    Par défaut
    De plus en plus proche....
    Ca redimensionne bien la liste, mais la hauteur, au lieu de la largeur !!!

Discussions similaires

  1. Largeur d'un menu popup
    Par engi dans le forum Windows
    Réponses: 0
    Dernier message: 27/03/2008, 10h39
  2. Popup du jCombobox
    Par onlybil dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/12/2007, 17h38
  3. Popup + JComboBox. Comment faire ?
    Par RR instinct dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 27/03/2007, 12h16
  4. JCombobox changer le contenu du popup
    Par alain57 dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 17/10/2006, 11h24
  5. [JComboBox] popup multiligne
    Par Stessy dans le forum Composants
    Réponses: 2
    Dernier message: 30/03/2005, 08h58

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