Problème JCombobox dans grouplayout

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

1 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
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 !
3
Rejoignez-nous