Probléme avec un tableau de commandes java [Résolu/Fermé]

Signaler
Messages postés
151
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
18 août 2016
-
Messages postés
151
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
18 août 2016
-
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

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.
Messages postés
151
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
18 août 2016
1
merci danimo,ton code m'aide à résoudre le problème :)