Insérer une colonne dans un jtable

Résolu/Fermé
oum87 - 19 sept. 2012 à 14:26
 oum87 - 19 sept. 2012 à 15:53
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:


 
 
 
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);
 }
    }













A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
19 sept. 2012 à 15:39
Le 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.
1
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);
 }
    

    }



0