problème avec JFilechooser en multiselection
bonsoir :salut:
je suis en train de faire un projet avec interface graphique. En premier lieu
je sélectionne des fichiers voila le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package project;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.filechooser.FileFilter;
/**
*
* @author Administrateur
*/
public class SelectionFichier extends JPanel implements ActionListener {
/* un JBouton pour appeler un JFileChooser */
private JButton bParcourir = new JButton("Parcourir");
/* un JTextField pour afficher le chemin du fichier choisie */
private JTextField txtCheminFichier = new JTextField(50);
/* extension des fichiers acceptés par le JFileChooser */
private String extension;
public JFileChooser chooser = new JFileChooser();
/* Constructeur */
public SelectionFichier(String extension) {
this.extension = extension;
construireInterface();
bParcourir.addActionListener(this);
}
/* méthode privée pour construire l'interface */
private void construireInterface() {
txtCheminFichier.setEditable(false);
this.add(txtCheminFichier);
this.add(bParcourir);
}
@Override
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if((JButton)source == bParcourir) {
int state = chooser.showOpenDialog(null);
File[] files = chooser.getSelectedFiles();
String[] filenames = getFilenames(files);
if(filenames != null &&
state == JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(null,filenames);
}
else if(state == JFileChooser.CANCEL_OPTION) {
JOptionPane.showMessageDialog(
null, "Canceled");
}
else if(state == JFileChooser.ERROR_OPTION) {
JOptionPane.showMessageDialog(
null, "Error!");
}
}
}
public String [] selection(){
File[] files = chooser.getSelectedFiles();
String[] filenames = getFilenames(files);
return filenames;
}
private String[] getFilenames(File[] files) {
String[] filenames = null;
int numFiles = files.length;
if(files.length > 0) {
filenames = new String[numFiles];
for(int i=0; i < numFiles; ++i) {
filenames[i] = files[i].getPath();
System.out.println(filenames[i]);
}
}
return filenames;
}
/* renvoie false si txtCheminFichier est vide */
public boolean isThereAChosenFile() {
return txtCheminFichier.getText().isEmpty() == false;
}
} |
puis j'appelle une fonction pour analyser les fichiers sélectionnées (cette fonction je l'ai testée à part et elle marche)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
if((JButton)source == bAnalyser) {
if(selectionFichier.isThereAChosenFile()) {
new Thread() {
@Override
public void run() {
try {
txtEtat.setText("Analysis in progress...");
files= selectionFichier.selection();
UseGate.gate(files);
txtEtat.append("\n\nL'opération s'est déroulé avec succès :\n" );
}
catch (Exception e) {
Toolkit.getDefaultToolkit().beep();
txtEtat.append("\n\nL'opération n'a pas pu se terminer");
}
}
}.start();
} |
la fonction de sélection ne marche pas j'ai pas compris où le problème.
S'il vous plaît aidez moi :cry: :cry: :cry: :cry: :cry:
Cordialement