Problème JCombobox dans grouplayout [Résolu]

H4rDBuG 47 Messages postés jeudi 14 janvier 2010Date d'inscription 26 juillet 2011 Dernière intervention - 6 juil. 2011 à 09:32 - Dernière réponse : H4rDBuG 47 Messages postés jeudi 14 janvier 2010Date d'inscription 26 juillet 2011 Dernière intervention
- 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 

Votre réponse

1 réponse

Meilleure réponse
H4rDBuG 47 Messages postés jeudi 14 janvier 2010Date d'inscription 26 juillet 2011 Dernière intervention - 6 juil. 2011 à 10:06
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 !

Merci H4rDBuG 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de H4rDBuG

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.