Probléme avec un tableau de commandes java

Résolu/Fermé
aminaxy Messages postés 151 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 - Modifié par aminaxy le 13/03/2012 à 12:01
aminaxy Messages postés 151 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 - 16 mars 2012 à 01:26
Bonjour,
j'ai un problème avec mon code,en faite mon tableau est un tableau dont chaque case est le résultat d'une commande qui va être exécuté en arrière plan,et affiche le résultat dans le tableau,
j'ai utilisé une variable de type objet pour les données de la jTable2 "data",et title représente les colonnes,
j'ai utilisé pour remplir le tableau par les résultat des commandes une boucle for,mais lorsque je compile seulement le résultat de la 3éme commande (qui doit s"afficher seulement dans la 3éme ligne) s'affiche dans tout le tableau.
voici mon code:
mon tableau doit être remplie dynamiquement,mais pour faciliter la tache j'ai l'initialise à 3 lignes:
 public Object[][] data; 
public String  title[] = {"title1", "title2","title3","title4","title5","title6","title7"}; 
  
    public void init_tableau(){ 
          
        
 data = new Object[3][7]; 
           String ccc ; 
           int i; 
            
           data = new Object[3][7]; 
           for(i=0;i<3;i++){    //chaqu'un de mes commandes est différente selon le numéro de comande 
              
           ccc=Integer.toString(i+1); 
           for (int j=0;j<3;j++){ 
                
          
            try{  
        String   cmd = "commande1 +ccc;             //ccc pour définir à chaque fois le numéro de commande       
        Process p = Runtime.getRuntime().exec(cmd); 
      // traitement de la commande 
       String qz1= "Loopback"; 
       String qz11=response1.substring(27,response1.length()-1); 
                
                    data[j][0] = qz1 ;   //pour dire dans la ligne1 la premiére colonne 
                    data[j][1] = qz11;  //pour dire dans la ligne1 la 2éme colonne 
        }catch(Exception e){ 
 e.printStackTrace();}  
             .............         //chaque commande sera traité comme ça,on variant le i et le j 
   
jTable2 = new JTable(data, title); 
        jScrollPane2.setViewportView(jTable2);   
         }   
    }    
    }

merci pour l'aide car je suis totalement perdu
A voir également:

2 réponses

Salut,

J'ai un peu adapté la démo suivante à ton cas.

Je simule les réponses dans le tableau simuRep.
 import java.awt.Font; 
   import javax.swing.JFrame; 
   import javax.swing.JScrollPane; 
   import javax.swing.JTable; 
   import javax.swing.table.DefaultTableModel; 
  
   class DemoJTable extends JFrame { 
      private DefaultTableModel model; 
    
      private static String title[] = {"title1", "title2","title3","title4","title5","title6","title7"};  
    
      private static Object[][] data = new Object[3][7]; // 3 lignes 7 colonnes 
    
      DemoJTable() { 
         super("Table Demo"); 
       
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
         setDefaultLookAndFeelDecorated(true); 
       
         model = new DefaultTableModel (data, title); 
       
         JTable table = new JTable (model); 
         table.setFont(new Font ("Courier New", Font.PLAIN,11)); 
         getContentPane().add(new JScrollPane (table)); 
         setSize(1000, 200); 
         setVisible(true); 
      } 
    
      public static void main(String [] args) { 
      //init Tableau simuRep:  
         String simuRep[] = 
{"abcdefghijABCDEFGHIJ", "klmnopqrstKLMNOPQRST", "uvwxyzabcdUVWXYZABCD", "efghijklmnEFGHIJKLMN", 
               "opqrstuvwxOPQRSTUVWX", "yzabcdefghYZABCDEFGH", "ijklmnopqrIJKLMNOPQR", "stuvwxyzabSTUVWXYZAB", 
               "cdefghijklCDEFGHIJKL", "mnopqrstuvMNOPQRSTUV", "wxyzabcdefWXYZABCDEF", "ghijklmnepGHIJKLMNOP", 
               "qrstuvwxyzQRSTUVWXYZ", "ABCDEFGHIJabcdefghij", "KLMNOPQRSTklmnopqrst", "UVWXYZABCDuvwxyzabcd", 
               "EFGHIJKLMNefghijklmn", "OPQRSTUVWXopqrstuvwx"};     
        
         for(int i = 0; i <simuRep.length; i++) 
            System.out.println(i + " " + simuRep[i]); 
             
         int colonne = 0; 
          
         int ccc = 0; 
         for(int ligne = 0; ligne <3; ligne++)  
         { 
            data[ligne][colonne] = "Loopback"; 
            for(colonne = 1; colonne < title.length; colonne++) 
            { 
               ccc++; 
               String cmd = "commande " + ccc;  
               data[ligne][colonne] = cmd + " " + simuRep[ccc -1].substring(10); // sans indice fin on prend jusquá la fin
            } 
            colonne = 0; 
         } 
         javax.swing.SwingUtilities.invokeLater( 
               new Runnable () { 
                  public void run() { 
                     new DemoJTable(); 
                  } 
               }); 
      } 
   } 


Ca t'aidera peut-être même si ce n'est pas tout à fait ce que tu veux.
Cordialement,

Dan

Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
0
aminaxy Messages postés 151 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 1
16 mars 2012 à 01:26
merci danimo,ton code m'aide à résoudre le problème :)
0