Insérer une colonne dans un jtable

Résolu
oum87 -  
 oum87 -
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);
 }
    }











1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    1. oum87
       
      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