Methode DoInBackground() de SwingWorker<Integer, String>
Bonjour,
Voila je me permets de vous poster un message, car j'ai besoin de votre aide sur l'utilisation de la méthode doInBackground(). En effet, j'ai une application qui permets d'ouvrir un fichier .xml à l'aide d'une fenetre (JFileChooser).
Code:
1 2 3 4 5 6 7 8 9 10
| private void choixFichier() throws SecurityException, IOException {
fenetreChoix = new JFileChooser(System.getProperty("user.dir"));
fenetreChoix.setFileSelectionMode(JFileChooser.FILES_ONLY);
filtre = new ExtensionFileFilter("XML (*.xml)", "XML");
fenetreChoix.setFileFilter(filtre);
fenetreChoix.setAcceptAllFileFilterUsed(false); // Permet d'enlever "Tous les fichiers"
if (fenetreChoix.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
execute();
}
} |
Et la méthode doInBackground(), ci dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| protected Integer doInBackground() throws Exception {
System.out.println("ici");
File file = fenetreChoix.getSelectedFile();
System.out.println(file.getAbsolutePath());
if(getType(file)){
String chemin = file.getAbsolutePath();
model.setParseur(new File(chemin));
JTree temp = new JTree(model.buildTree());
affichage.setArbre(temp.getModel());
}
new Logging(affichage).ajouter("Ouverture du fichier effectuée");
return null;
} |
Mon problème vient du fait que lors de l'ouverture du premier fichier xml. J'entre bien dans la méthode choixFichier() et j'exécute bien la méthode execute() qui permets d'appelerla méthode doInBackground().
Ce n'est lors d'une deuxième ouverture successive que la méthode appelée par execute() ne se fait plus. Savez vous pourquoi?
Merci d'avance,