Problème JCombobox dans grouplayout [Résolu]

Messages postés
47
Date d'inscription
jeudi 14 janvier 2010
Statut
Membre
Dernière intervention
26 juillet 2011
- - Dernière réponse : H4rDBuG
Messages postés
47
Date d'inscription
jeudi 14 janvier 2010
Statut
Membre
Dernière intervention
26 juillet 2011
- 6 juil. 2011 à 10:06
Bonjour a tous,

Voila mon problème est dans le titre, je réalise une application qui gère des données extremement longues, et pour cela il a fallut que j'adapte l'ihm en grouplayout, et que j'utilise un code de JcomboBox (le code de santosh), jusque la tout va bien.

Mon problème est que utilsant cette "WideComboBox" partout dans mon application, (divers onglet de mon cadrlayout) il n'y a aucun soucis, la taille de la combobox est prédéfinie, le popup s'agrandit bien en fonction des items sauf dans un seul onglet, il me déforme toute mon interface car la taille de la combobox s'adapte a ma valeur la plus longue ... le code de mon onglet est un copié/collé d'un autre de mes onglets qui fonctionne nikel, j'ai bien vérifié si je n'avais pas oublié de renommé une variable et ce n'est pas le cas, j'ai aussi vérifié et revérifié la déclaration de ma combobox qui est déclarée en wideComboBox ...

voila mon code :

    WideComboBox CEntNomService;
    WideComboBox CEntNomAgent;

JPanel carte4 = new JPanel();
        
        JPanel PanES = new JPanel(new GridLayout(2,2,20,20));
        
        TitledBorder TAEntree;                                               
        TAEntree = BorderFactory.createTitledBorder("Ajouter une entrée de stock");    
        
        JLabel LEntLibProd = new JLabel ("Libellé du produit :");         
        JLabel LEntQteProd = new JLabel ("Quantité du produit :");     
        JLabel LEntNomService = new JLabel ("Nom du service :");   
        JLabel LEntNomAgent = new JLabel ("Nom de l'agent :");
        
        CEntLibProd = new WideComboBox();    
        CEntLibProd.setEditable(false);
        SQteProdAEntree = new JTextField();               
        CEntNomService = new WideComboBox(); 
        CEntNomService.addItemListener(this);
        CEntNomService.setEditable(false);
        CEntNomAgent = new WideComboBox();  
        CEntNomAgent.setEditable(false);
        BCancelEntree = new JButton("Annuler");
        BCancelEntree.addActionListener(this);
        BAjoutEntree = new JButton("        Ajouter        ");        // les espaces ici sont pour un défaut d'ihm (permet d'agrandir la colonne et d'améliorer l'interface)
        BAjoutEntree.addActionListener(this);
        
        JPanel PanAjoutEntree = new JPanel();                         
        
        GroupLayout layoutAEntree = new GroupLayout(PanAjoutEntree);    
        PanAjoutEntree.setLayout(layoutAEntree);                        
        
        layoutAEntree.setHorizontalGroup(                                                                                 
            layoutAEntree.createParallelGroup(GroupLayout.Alignment.LEADING)                                              
            .addGroup(GroupLayout.Alignment.TRAILING, layoutAEntree.createSequentialGroup()                               
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.LEADING, false)                         
                    .addComponent(BCancelEntree, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)     
                    .addComponent(LEntNomAgent, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)     
                    .addComponent(LEntNomService, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
                    .addComponent(LEntQteProd, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
                    .addComponent(LEntLibProd, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE))                           
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 75, Short.MAX_VALUE)
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.LEADING, false)                         
                    .addComponent(BAjoutEntree, GroupLayout.Alignment.TRAILING, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                                               
                    .addComponent(CEntNomAgent, 0, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)                                                        
                    .addComponent(CEntNomService, 0, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
                    .addComponent(SQteProdAEntree, 0, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
                    .addComponent(CEntLibProd, 0, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)))                                                                             
        );
        layoutAEntree.setVerticalGroup(                                                                                             
            layoutAEntree.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layoutAEntree.createSequentialGroup()
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.BASELINE)                                       
                    .addComponent(CEntLibProd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)  
                    .addComponent(LEntLibProd))                                                                                   
                .addGap(7, 7, 7)                                                                                                     
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(SQteProdAEntree, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)      
                    .addComponent(LEntQteProd))                                                                                       
                .addGap(7, 7, 7)                                                                                                    
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.BASELINE)    
                    .addComponent(CEntNomService, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addComponent(LEntNomService))
                .addGap(7, 7, 7)
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.BASELINE)    
                    .addComponent(CEntNomAgent, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addComponent(LEntNomAgent))
                .addGap(44, 44, 44)
                .addGroup(layoutAEntree.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(BCancelEntree)
                    .addComponent(BAjoutEntree)))
        );
        
        PanAjoutEntree.setBorder(TAEntree);
        
        /////////////
        
        TitledBorder TASortie;
        TASortie = BorderFactory.createTitledBorder("Ajouter une sortie");
        
        JLabel LSorLibProd = new JLabel ("Libellé du produit :");
        JLabel LSorQteProd = new JLabel ("Quantité du produit :");
        JLabel LSorNomService = new JLabel ("Nom du service :");
        JLabel LSorNomAgent = new JLabel ("Nom de l'agent :");
        
        CSorLibProd = new WideComboBox();
        CSorLibProd.setEditable(false);
        SQteProdASortie = new JTextField();               
        CSorNomService = new WideComboBox(); 
        CSorNomService.setEditable(false);
        CSorNomService.addItemListener(this);
        CSorNomAgent = new WideComboBox();  
        CSorNomAgent.setEditable(false);
        BCancelSortie = new JButton("Annuler");
        BCancelSortie.addActionListener(this);
        BAjoutSortie = new JButton("        Ajouter       ");        // les espaces ici sont pour un défaut d'ihm (permet d'agrandir la colonne et d'améliorer l'interface)
        BAjoutSortie.addActionListener(this);
        
        JPanel PanAjoutSortie = new JPanel();
        GroupLayout layoutASortie = new GroupLayout(PanAjoutSortie);
        PanAjoutSortie.setLayout(layoutASortie); 
        
        layoutASortie.setHorizontalGroup(
            layoutASortie.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(GroupLayout.Alignment.TRAILING, layoutASortie.createSequentialGroup()
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.LEADING, false)
                    .addComponent(BCancelSortie, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(LSorNomAgent, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(LSorNomService, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(LSorQteProd, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(LSorLibProd, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 100, Short.MAX_VALUE)
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.LEADING, false)
                    .addComponent(BAjoutSortie, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(CSorNomAgent, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(CSorNomService, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(SQteProdASortie)
                    .addComponent(CSorLibProd, 0, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)))
        );
        layoutASortie.setVerticalGroup(
            layoutASortie.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layoutASortie.createSequentialGroup()
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(CSorLibProd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addComponent(LSorLibProd))
                .addGap(7, 7, 7)
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(SQteProdASortie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addComponent(LSorQteProd))
                .addGap(7, 7, 7)
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(CSorNomService, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addComponent(LSorNomService))
                .addGap(7, 7, 7)
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(CSorNomAgent, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addComponent(LSorNomAgent))
                .addGap(7, 7, 7)
                .addGap(32, 32, 32)
                .addGroup(layoutASortie.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(BCancelSortie)
                    .addComponent(BAjoutSortie)))
        );
        
        PanAjoutSortie.setBorder(TASortie);


et pour le code de santosh :

http://www.jroller.com/santhosh/entry/make_jcombobox_popup_wide_enough
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
47
Date d'inscription
jeudi 14 janvier 2010
Statut
Membre
Dernière intervention
26 juillet 2011
3
Merci
problème résolut (enfin ! 12h pour ca ...) le problème se passe dans le addComponent du parallelGroup de l'horizontalgroup, il fallait mettre en valeur minimale, 150, en preferred il fallait laissé en default et en max mettre a 150 et tout passe !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de H4rDBuG