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