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

Langage Java Discussion :

Générer des JLabel en fonction du résultat d'un ResultSetMetaData


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Générer des JLabel en fonction du résultat d'un ResultSetMetaData
    J'ai une fonction qui est chargée de me renvoyer le titre de tous les champs que j'aurai récupérés avec une requete dans un tableau. Ce tableau s'appelle titresColonnes.
    Ci-dessous un extrait de la fonction en question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static void ParametrageListes(int nbColonnes, ResultSet rs){
    		String titresColonnes[];
    		try{
    			ResultSetMetaData metadata = rs.getMetaData();
    			titresColonnes = new String[metadata.getColumnCount()];
    			for(int i = 0; i < titresColonnes.length; i++){
    				String nomColonne = metadata.getColumnName(i+1);
    				titresColonnes[i] = nomColonne;
    			}
    			switch(nbColonnes){
    			case 2:
    				FenetreDeuxParametres fdp = new FenetreDeuxParametres();
    				fdp.build(titresColonnes);
    Je voudrais pouvoir envoyer ce tableau à une autre fonction dans laquelle je veux créer des JLabel en fonction de ce que contient mon tableau. Voici
    un extrait de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void build(String []titresListes){
    		lbl_parametre1 = new JLabel(); 
    		parametre1 = new JComboBox();
    		lbl_parametre2 = new JLabel();
    		parametre2 = new JComboBox();
     
    		lbl_parametre1 = new JLabel (""+titresListes[0]+"");
    		lbl_parametre2 = new JLabel (""+titresListes[1]+"");
    Mais j'ai le message d'erreur suivant :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
    	at javax.swing.JTable$1.getValueAt(Unknown Source)
    	at javax.swing.JTable.getValueAt(Unknown Source)
    	at javax.swing.JTable.prepareRenderer(Unknown Source)
    	at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
    	at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
    	at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
    	at javax.swing.plaf.ComponentUI.update(Unknown Source)
    	at javax.swing.JComponent.paintComponent(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JViewport.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JLayeredPane.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    	at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    	at javax.swing.RepaintManager.paint(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    	at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    	at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    	at java.awt.Container.paint(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Auriez vous une idée de comment je pourrais faire ?

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Visiblement, ton problème vient d'une JTable, ça n'a pas nécessairement de rapport avec le code que tu donne.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut c'est exact
    Oui effectivement, je viens tout juste de m'en rendre compte...

    Je te remercie de ta réponse

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    Tu aurais une idée par hasard d'où ça peut provenir ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    J'ai trouvé. C'est parce que j'avais défini un JTable avec deux colonnes au niveau des titres et trois colonnes au niveau des données contenues dans le tableau...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Générer des formulaires en fonction de la BDD
    Par black is beautiful dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/05/2011, 05h45
  2. [XL-2007] Afficher des cellules en fonction du résultat d'une liste déroulante
    Par mandrake57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2011, 17h21
  3. générer des n° de lignes dans le résultat d'une requête
    Par karimspace dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/09/2007, 20h33
  4. Fonction : générer des impulsions.
    Par banban56 dans le forum C
    Réponses: 8
    Dernier message: 24/03/2007, 16h35
  5. Réponses: 13
    Dernier message: 17/01/2007, 13h18

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