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 :

[Swing] JComboBox avec alignement


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [Swing] JComboBox avec alignement
    Bonjour,

    j'ai créer une JComboBox.
    Le contenu de cette lise déroulante ressemble à ceci :
    hamham pig
    puffy hamster
    ronron cat
    Or je voudrais que ces elements soient alignés en colonne (une colonne pour le nom, uen pour le type, etc..)

    Comment faire ?

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Basiquement l'idée est d'insérer une JTable dans ta JComboBox: certains l'ont déja fait:

    https://jdnc-incubator.dev.java.net/...eComboBox.java

    https://jdnc-incubator.dev.java.net/...oBoxTable.java

    https://jdnc-incubator.dev.java.net/...oBoxModel.java

    https://jdnc-incubator.dev.java.net/...tComboBox.java

    Il te faudra les quatres fichiers pour qu'elle fonctionne, ainsi que le jar de l'API SwingX

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai toujours une Exception mais je ne parviens pas à trouver la cause..

    java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.Vector.elementAt(Vector.java:435)
    at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:621)
    at org.jdesktop.jdnc.incubator.bierhance.TableComboBoxModel.getValueAt(TableComboBoxModel.java:63)
    at org.jdesktop.jdnc.incubator.bierhance.TableComboBoxModel.getSelectedItem(TableComboBoxModel.java:92)
    at javax.swing.JComboBox.setModel(JComboBox.java:292)
    at org.jdesktop.jdnc.incubator.bierhance.JTableComboBox.<init>(JTableComboBox.java:82)
    at testComboBox.getLst1(testComboBox.java:61)
    at testComboBox.initGUI(testComboBox.java:46)
    at testComboBox.<init>(testComboBox.java:38)
    at testComboBox.main(testComboBox.java:32)
    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
     
    private JTableComboBox getLst1() {
            if (lst1 == null) {
     
                String[] columnNames = {"Name", "Age"};
                Object[][] data = { {"Sergi", new Integer(12)}, {"Alison", new Integer(32)}, {"Kathy", new Integer(75)} };
                DefaultTableModel tableModel = new DefaultTableModel(data, columnNames);
                try {
                  lst1 = new JTableComboBox(tableModel, 0);
                } catch (Exception e) {
                    e.printStackTrace();
     
                }
            }
            return lst1;
        }
    C'est pourtant le code de leur exemple..

    quequ'un sais m'éclairer ?

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    Même problème que toi, si tu as trouvé la solution ca m'interesse

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2004
    Messages : 201
    Par défaut
    Pour ceux qui ont le même problème, il se règle en utilisant un tablemodel modifié qui retourne null dans la méthode getValueAt() si le range est égal à -1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public Object getValueAt(int row, int column) {
    	if (row < 0 || column < 0){
    		return null;
    	}
    	return data[row][column];
    }

Discussions similaires

  1. [SWING] Pb avec getMonths et JComboBox
    Par Core8 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/12/2006, 16h40
  2. [Swing] JPanel avec sa JScrollBar qui scrolle toute seule
    Par chcoust dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 22/11/2006, 14h37
  3. Réponses: 2
    Dernier message: 15/04/2006, 17h50
  4. [Swing] execution avec Runtime.getRuntime().exec
    Par benssj5 dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 25/08/2004, 14h54
  5. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 10h53

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