Blocage sur boucle for

guillaume17
Blocage sur boucle for

Bonjour.

J'ai un problème au niveau d'une boucle for dans une de mes class.
Dans cette classe j'exécute, lors d'un clique sur un bouton, la méthode suivante :

public void installerAll(){ 
        Variable.out.println("100");    
        String sup=""; 
        Variable.out.println("101"); 
        String comp=null; 
        Variable.out.println("102"); 
        for(Enumeration<Poste> et=retouracceuil.postes_selectionnes.elements();et.hasMoreElements();){ 
            if(comp==null){ 
                comp=et.nextElement().getGroupe().getNom(); 
            }else if(!comp.equals(et.nextElement().getGroupe().getNom())){ 
                sup="ATTENTION il y a plus d'un groupes différents.\n"; 
                break; 
            } 
        } 
        Variable.out.println("103"); 
        int choix = JOptionPane.showConfirmDialog(null,sup+"Êtes vous sûr d'installer les tps sur tout les PC ?", "Confirmation", 
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);   /**Affichage de la fenêtre de dialogue demandant la confirmation d'installation **/ 
        Variable.out.println("104"); 
        if (choix == JOptionPane.YES_OPTION)         /**Gestion de l'ajout et de la suppression des groupes en graphique et dans le fichier txt**/ 
        { 
            Variable.out.println("105"); 
            Object[] options = { Variable.etatName[Variable.OPERATIONEL], Variable.etatName[Variable.TEMP] }; 
            Variable.out.println("106"); 
            setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 
            Variable.out.println("107"); 
            MyTableModel md=(MyTableModel)table.getModel(); 
            Variable.out.println("108"); 
            for(int i=0;i<md.getRowCount();i++){ 
                  
                if((md.getValueAt(i,md.getColumnCount()-1)).equals(true)){ 
                    Variable.out.println("111"); 
                    TpsRef ref = Variable.baseTps.get((String)md.getValueAt(i,1)); 
                    Variable.out.println("112"); 
                    if(ref!=null){ 
                        
                        if(ref.getEtat()==Variable.NEW){ 
                            Object choix2 = JOptionPane.showInputDialog(null,"Choix pour le tps : "+ref.getNameTps(),"Warning", 
                                    JOptionPane.INFORMATION_MESSAGE,null,options,options[0]); 
                            if(choix2!=null){ 
                                Variable.out.println("113"); 
                                int oldEtat=ref.getEtat(); 
                                Variable.out.println("114"); 
                                int newEtat=Variable.nameEtat(choix2.toString()); 
                                Variable.out.println("115"); 
                                String subTps=ref.getNameTps().replaceFirst("^[\\d]+-",""); 
                                Variable.out.println("116");                              
                                String sourceZip=Variable.subRep(subTps,ref.getInstallDir()); 
                                Variable.out.println("117"); 
                                String destZip=Variable.modifInstall(sourceZip,oldEtat,newEtat); 
                                Variable.out.println("118"); 
                                if(destZip==null){ 
                                    Variable.err.println("Modification impossible car pas de dossier de référence pour "+Variable.etatName[newEtat]); 
//                                setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 
                                    continue; 
                                }else if(destZip.equals("")){ 
                                    Variable.err.println("Modification impossible car le fichier d'install n'est pas dans un dossier de référence pour "+Variable.etatName[oldEtat]); 
                                    continue; 
                                } 
                                Variable.out.println(sourceZip+" -> "+destZip); 
                                if(!new File(destZip.toUpperCase().replaceAll("\\\\\\w*.ZIP","\\\\")).exists()){ 
                                    if(!new File(destZip.replaceAll("[^\\\\]+\\\\$","")).exists()){ 
                                        if(!new File(destZip.replaceAll("[^\\\\]+\\\\$","")).mkdirs()){ 
                                            Variable.err.println("Erreur de création de répertoire : "+destZip); 
//                                        setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 
                                            continue; 
                                        } 
                                    } 
                                    
                                } 
                                Variable.out.println("119"); 
                                if(new File(sourceZip).renameTo(new File(destZip))){ 
                                    Variable.out.println("120"); 
                                    ref.setInstallDir(Variable.modifInstall(ref.getInstallDir(),oldEtat,newEtat)); 
                                    Variable.out.println("121"); 
                                    ref.setEtat(newEtat); 
                                    Variable.out.println("122"); 
                                    md.setValueAt(Variable.etatName[newEtat],i,md.getColumnCount()-3); 
                                    Variable.out.println("123"); 
//                                    this.installRef.setText(ref.getInstallDir()); 
                                    String s=Variable.deleteRec(sourceZip.replaceAll("[^\\\\]+\\\\$",""),sourceZip); 
                                    Variable.out.println("124"); 
                                    s = s!=null ? s : sourceZip; 
                                    Variable.out.println("125"); 
                                    Variable.out.println("Fichier/Dossier supprimé : "+s); 
                                    Variable.out.println("Fichier déplacé : "+sourceZip+" -> "+destZip); 
                                    Variable.saveRef(); 
                                }else{ 
                                    Variable.err.println("Erreur pour déplacer le fichier : "+sourceZip+" -> "+destZip); 
//                                    setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 
                                    continue; 
                                } 
                            }else{ 
                                Variable.err.println("Pas de choix pour le tps "+ref.getNameTps()); 
                                setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 
                                continue; 
                            } 
                            
                        } 
  
                        Variable.out.println("Install auto de ["+ref.getNameTps()+"]"); 
                        for(int k=3;k<md.getColumnCount()-4;k++){ 
                            Variable.out.println("126"); 
                            Object []temp = ((Cell)md.getValueAt(i,k)).o; 
                            Variable.out.println("127"); 
                            String name = (String)temp[0]; 
                            Variable.out.println("128"); 
                            Poste p = (Poste)temp[1]; 
                            Variable.out.println("129"); 
                            Vector<TpsPoste> t=(Vector<TpsPoste>)temp[2]; 
                            Variable.out.println("130"); 
                            if(t==null){ 
                                
                                p.installTps(name); 
                                
                            }else{ 
                                if(!p.isTpsRef(name)){ 
                                    Variable.out.println(md.getColumnName(k)+" to REF : "+(String)md.getValueAt(i,1)); 
                                    p.addRef(name); 
                                    
                                } 
                            } 
                        } 
                    }else{ 
                        Variable.err.println("Impossible d'installer un programme qui n'est pas une ref : ["+(String)md.getValueAt(i,1)+"]"); 
                    } 
                    md.setValueAt(false,i,md.getColumnCount()-1); 
                } 
            } 
            md.fireTableDataChanged(); 
            setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 
        } 
        
    } 

et tout marche parfaitement. Maintenant je veux exécuter de la même manière cette fonction en l'appelant d'une autre class par le biais d'un clique sur un sous-item ("installer").
Donc je fais tout ce qu'il faut pour. Je crée une instance de la première class ou se trouve la fonction, je renseigne le constructeur de la seconde class avec le nouvel attribut.
Mon programme d'appel est le suivant :

public class GestionInstaller implements ActionListener 
    {    
       /** 
        * Methode de recherche 
        * @param ev ActionEvent 
        */ 
        public void actionPerformed(ActionEvent ev) 
            { 
               Variable.out.println("4"); 
               Page3 inst= new Page3(retouracceuil); 
               Variable.out.println("4"); 
               inst.installerAll(); 
               Variable.out.println("Le bouron 'Installer' a été cliqué"); 
            } 
    } 

Mais voilà lorsque je clique sur le sous-item pour lancer la fonction, le programme se lance correctement (il fait le lien entre les deux class) mais ne vient pas exécuter le reste de la méthode, en l'occurence :

Variable.out.println("Install auto de ["+ref.getNameTps()+"]"); 
                        for(int k=3;k<md.getColumnCount()-4;k++){ 
                            Variable.out.println("126"); 
                            Object []temp = ((Cell)md.getValueAt(i,k)).o; 
                            Variable.out.println("127"); 
                            String name = (String)temp[0]; 
                            Variable.out.println("128"); 
                            Poste p = (Poste)temp[1]; 
                            Variable.out.println("129"); 
                            Vector<TpsPoste> t=(Vector<TpsPoste>)temp[2]; 
                              
                            if(t==null){ 
                                
                                p.installTps(name); 
                                
                            }else{ 
                                if(!p.isTpsRef(name)){ 
                                    Variable.out.println(md.getColumnName(k)+" to REF : "+(String)md.getValueAt(i,1)); 
                                    p.addRef(name); 
                                    
                                } 
                            } 
                        } 

Merci d'avance

guillaume17

Rectification :

En fait le programme entre et sort de la boucle for. Par contre c'est dans la boucle suiavnte : le if dans lequel il ne rentre jamais.

if((md.getValueAt(i,md.getColumnCount()-1)).equals(true)){
                    Variable.out.println("111"); 
                    TpsRef ref = Variable.baseTps.get((String)md.getValueAt(i,1));
                    Variable.out.println("112");
fredericmazue

Difficile de t'aider efficacement car difficile de comprendre ta question... Toutefois tu écris:

Quote:
mais ne vient pas exécuter le reste de la méthode

En amont dans un if, il y a une instruction continue. Par hasard ça ne serait pas cette instruction qui fait que ton bloc de code est sauté ?
guillaume17

Quote:

Difficile de t'aider efficacement car difficile de comprendre ta question... Toutefois tu écris:

Mon problème c'est que lorsque le programme entre dans la boucle for, il devrait normalement, à un moment donnée, entrer dans la boucle if. Or ce n'est pas ce qui se passe.

Quote:

En amont dans un if, il y a une instruction continue. Par hasard ça ne serait pas cette instruction qui fait que ton bloc de code est sauté ?

De quel instruction continue parles tu? Je ne vois pas trop ce que tu veut dire.

merci par avance