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 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
/**
* Fonction qui permet d'ouvrir un explorateur de fichier
* avec des extensions précise et un répertoire prédéfinie.
*
* @param extension Tableau des extensions autorisées.
* @param description Description des extensions.
* @param dossier Répertoire d'ouverture de l'explorateur
* de fichier.
* @param contrainte Permet d'accepter un fichier dont
* l'extension ne figure pas dans le tableau si il est
* à false. Sinon n'accepte que les fichiers du tableau
* d'extension.
* @param desactiveBouton Permet de désactiver les boutons de navigations
* de l'explorer de fichier
* @param fullPath Permet de retourner le chemin complet du fichier à la place
* de son nom.
* @return Le fichier sélectionné.
*/
public static String demandeOuvrirFichier(String[] extension, String description,
File dossier, boolean contrainte, boolean desactiveBouton, boolean fullPath) {
JFileChooser chooser = new JFileChooser();
FiltreFichier filtre = null;
//ChoixFichier filter = new ChoixFichier(".SADT", "CANALYSE SADT");
chooser.setDialogType(JFileChooser.OPEN_DIALOG);
//chooser.addChoosableFileFilter(filter);
if( desactiveBouton ){
//desactivation des boutons de navigations et du comboBox.
DisableButton(chooser);
}
if (extension != null && extension.length > 0) {
//mise en place des filtres de fichiers
filtre = new FiltreFichier(extension);
filtre.setDescription(description);
chooser.setFileFilter(filtre);
}
if (dossier != null) {
//positionnement du fileChooser dans le bon répertoire.
chooser.setCurrentDirectory(dossier);
}
int retval = chooser.showDialog(new JFrame(), null);
while (retval == JFileChooser.APPROVE_OPTION) {
File theFile = chooser.getSelectedFile();
if (theFile != null) {
if (theFile.exists()) {
if ((filtre != null && contrainte) ? filtre.accept(theFile) : true) {
if( fullPath ){
LeFichier = theFile.getPath();
}else {
LeFichier = theFile.getName();
}
return LeFichier;
} else {
int reponse = JOptionPane.showConfirmDialog(new JFrame(),
"Vous ne pouvez pas ouvrir ce fichier." +
"Voulez vous essayer d'en ouvrir un autre ?", "Erreur de sélection de fichier",
JOptionPane.YES_NO_OPTION);
if (reponse == JOptionPane.NO_OPTION) {
return "";
}
}
} else {
int reponse = JOptionPane.showConfirmDialog(new JFrame(),
"Le Fichier n'existe pas. Voulez-vous essayer " +
"d'en ouvrir un autre", "Erreur de lecture du fichier",
JOptionPane.YES_NO_OPTION);
if (reponse == JOptionPane.NO_OPTION) {
return "";
}
}
}
retval = chooser.showDialog(null, null);
}
return "";
}
private static void DisableButton(Container c) {
//nombre de composent dans le container
int len = c.getComponentCount();
for (int i = 0; i < len; i++) {
Component comp = c.getComponent(i);
if (comp instanceof JButton) {
JButton b = (JButton) comp;
if( b.getText() == null || b.getText().equals("")){
b.setEnabled(false);
}
} else if (comp instanceof JComboBox) {
JComboBox cb = (JComboBox) comp;
cb.setEnabled(false);
} else if (comp instanceof Container) {
DisableButton((Container) comp);
}
}
} |
Partager