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.<init>(Unknown Source)
at javax.swing.JTable.<init>(Unknown Source)
at Vue.NewJPanel.initGUI(NewJPanel.java:102)
at Vue.NewJPanel.<init>(NewJPanel.java:47)
at Vue.NewJPanel.main(NewJPanel.java:39)
merci d'avance pour votre aide
Adrien