Cast Vector

Résolu
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009 - 18 févr. 2008 à 21:30
 Utilisateur anonyme - 20 févr. 2008 à 06:26
Bonjour à tous,
J'aimerai remplir un tableau à l'aide d'un vector. J'ai utilisé des exemples trouver sur le web mais il me reste une erreur que je n'arrive pas à résoudre

Voici ma classe:
public class NewJPanel extends javax.swing.JPanel {
    private JScrollPane jScrollPane1;
    private JTable jTable1;

    /**
    * Auto-generated main method to display this
    * JPanel inside a new JFrame.
    */
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.getContentPane().add(new NewJPanel());
        frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
   
    public NewJPanel() {
        super();
        initGUI();
    }
   
    public Vector ColunmName() throws SQLException{
        String req "Select utilisateur.* from utilisateur, etudiant where utilisateur.id_util etudiant.id_util_etu order by utilisateur.nom, utilisateur.prenom";
           
        ResultSet rs = Ressource.dataBase.getRst(req);
        ResultSetMetaData md = rs.getMetaData();
       
           
        Vector nomColonnes = new Vector();
   
       
        int colonnes = md.getColumnCount();
       
        for(int i=1; i<=colonnes; i++){
            nomColonnes.addElement(md.getColumnName(i));
        }
       
        return nomColonnes;
    }
       
        public Vector data() throws SQLException{
            String req "Select utilisateur.* from utilisateur, etudiant where utilisateur.id_util etudiant.id_util_etu order by utilisateur.nom, utilisateur.prenom";
               
            ResultSet rs = Ressource.dataBase.getRst(req);
            ResultSetMetaData md = rs.getMetaData();
            int col = md.getColumnCount();
           
            Vector data = new Vector();
            while (rs.next()){
                Vector row = new Vector();
                for (int i=1; i<=col;i++){
                    row.addElement(rs.getObject(i));
                }
            data.addElement(row);
           
            }
            return data;
        }
    private void initGUI() {
        try {
            setPreferredSize(new Dimension(400, 300));
            this.setLayout(null);
            {
                jScrollPane1 = new JScrollPane();
                this.add(jScrollPane1);
                jScrollPane1.setBounds(42, 25, 337, 127);
                {
                    TableModel jTable1Model =
                        new DefaultTableModel(
                                new String[][] { { "One", "Two" }, { "Three", "Four" } },
                                new String[] { "Column 1", "Column 2" });
                    jTable1 = new JTable(ColunmName(),data());
                    jScrollPane1.setViewportView(jTable1);
                    jTable1.setModel(jTable1Model);
                    jTable1.setPreferredSize(new java.awt.Dimension(334, 88));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}
 
et voici l'erreur:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Vector
    at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
    at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
    at javax.swing.table.DefaultTableModel.(Unknown Source)
    at javax.swing.JTable.(Unknown Source)
    at Vue.NewJPanel.initGUI(NewJPanel.java:102)
    at Vue.NewJPanel.(NewJPanel.java:47)
    at Vue.NewJPanel.main(NewJPanel.java:39)

merci d'avance pour votre aide

Adrien

8 réponses

Utilisateur anonyme
19 févr. 2008 à 22:14
Tu dois passer un Vector de Vector au constructeur de la classe JTable donc fais plutôt :
jTable1 = new JTable(data(),ColunmName());
Ca marche?

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
3
Utilisateur anonyme
19 févr. 2008 à 06:46
Bonjour

Prends une version plus récente de Java. J'ai réussi à compiler ton programme sans problème avec Java 1.6 update 4 à part qu'il me manquait la classe Ressource.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
19 févr. 2008 à 09:59
Je suis passé en java 6 update 4 mais cela ne change rien. j'ai toujours la même erreur!!

Adrien
0
Utilisateur anonyme
19 févr. 2008 à 12:50
Moi j'ai juste rajouté les imports et commenté les lignes avec les appels à la classe Ressource et ça a compilé.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
19 févr. 2008 à 12:51
C'est à l'exécution que ça te fait ça?

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
19 févr. 2008 à 16:47
oui, c'est à l'execution, rien ne s'affiche

Adrien
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
19 févr. 2008 à 22:27
MERCI
ça marche!!! j'avais inverser les deux vecteurs!!!!

Adrien
0
Utilisateur anonyme
20 févr. 2008 à 06:26
Ah tant mieux. La prochaine fois, lis bien la documentation Java, ça n'a rie nde sorcier. Bon courage.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
Rejoignez-nous