Insérer une colonne dans un jtable
Résolu
Bonjour,
Je voudrai afficher une colonne (que je calcule après l'avoir récupérer de ma bdd)dans un jtable lorsque je clique sur un bouton OK
Merci de m'aider
Mon code est le suivant:
Je voudrai afficher une colonne (que je calcule après l'avoir récupérer de ma bdd)dans un jtable lorsque je clique sur un bouton OK
Merci de m'aider
Mon code est le suivant:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
int somme=0;
ConnectionDB conn = null;
conn = new ConnectionDB("jdbc:mysql://localhost/mysql");
conn.executeUpdate("CREATE DATABASE IF NOT EXISTS one");
conn = new ConnectionDB("jdbc:mysql://localhost/one");
ResultSet rs = conn.executeQuery("SELECT Prev12, Prev13, Retard, Cons12, Stock, Qte, Qte1 FROM feuil3 ");
int j=1;
while (rs.next()){
int prev1=rs.getInt("Prev12");
int prev2=rs.getInt("Prev13");
int ret=rs.getInt("Retard");
int cons=rs.getInt("Cons12");
int Qt=rs.getInt("Qte");
int Qt1=rs.getInt("Qte1");
int stk=rs.getInt("Stock");
somme=((prev1+prev2+ret-cons)-(Qt+Qt1+stk));
// String s=String.valueOf(somme);
// System.out.println("somme est:"+somme);
jTable1.setValueAt(somme,j,1);
j++;
}
} catch (Exception ex) {
Logger.getLogger(page2.class.getName()).log(Level.SEVERE, null, ex);
}
}
1 réponse
-
ModérateurLe principe des JTable (et quelques autres composants de ce type) c'est d'utiliser des Model. Si tu veux modifier les dimensions de la table ou accéder à ses données, c'est au modèle que tu dois le demander. La JTable ne s'occupe "que" de l'affichage des données.
Object[] columnNames; Object[][] data; DefaultTableModel model = new DefaultTableModel(data,columnNames); JTable jTable = new JTable(model); int row, column; Object aValue; model.setValueAt(aValue,row,column); Object columnName; Object[] columnData; model.addColumn(columnName, columnData); Object[] rowData; model.addRow(rowData);
Remarque : il est important de fermer tes connexions, avec conn.close(), parce qu'elles ne vont pas se fermer toutes seules. En s'accumulant en mémoire elles peuvent à terme causer une OutOfMemoryError.-
Merci pour ton aide...
J'ai aussi trouvé une solution
Tu as raison pour les connexions il faudrait que je les fermes :)private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { int somme=0; DefaultTableModel model = new DefaultTableModel(); ConnectionDB conn = null; conn = new ConnectionDB("jdbc:mysql://localhost/mysql"); conn.executeUpdate("CREATE DATABASE IF NOT EXISTS one"); conn = new ConnectionDB("jdbc:mysql://localhost/one"); ResultSet rs = conn.executeQuery(" SELECT Prev12, Prev13, Retard, Cons12, Stock, Qte, Qte1 FROM feuil3 "); int j=0; while (rs.next()) { int prev1=rs.getInt("Prev12"); int prev2=rs.getInt("Prev13"); int ret=rs.getInt("Retard"); int cons=rs.getInt("Cons12"); int Qt=rs.getInt("Qte"); int Qt1=rs.getInt("Qte1"); int stk=rs.getInt("Stock"); somme=((prev1+prev2+ret-cons)-(Qt+Qt1+stk)); String s=String.valueOf(somme); jTable1.setValueAt(somme,j,0); j++; } } catch (Exception ex) { Logger.getLogger(page2.class.getName()).log(Level.SEVERE, null, ex); } }
-