Par default pour afficher une boite de dialogue, on pense de suite à JFileChooser de Swing. Par contre impossible d'appliquer un filtre sous Windows. La solution est de passer par FileDialog d'awt.
import java.awt.FileDialog;
import java.awt.Frame;
/**
* Afficher une boite de dialogue "ouvrir un fichier"
* @param _frame Frame ouvrant la boite de dialogue
* @param _title Title de la boite de dialogue
* @param _path Répertoire initiale
* @param _fileFilter Filtre de type *.jpg
* @return repertoire"/"nom du fichier
*/
public String LoadFromFile(Frame _frame, String _title, String _path, String _fileFilter) {
FileDialog fileDialog = new FileDialog(_frame, _title, FileDialog.LOAD);
fileDialog.setFile(_fileFilter);
fileDialog.setDirectory(_path);
fileDialog.setLocation(50, 50);
fileDialog.setDirectory(_path);
fileDialog.setVisible(true);
return fileDialog.getDirectory() + fileDialog.getFile();
}
/**
* Afficher une boite de dialogue "Enregistrer un fichier"
* @param _frame Frame ouvrant la boite de dialogue
* @param _title Title de la boite de dialogue
* @param _path Répertoire initiale
* @param _fileFilter Filtre de type *.jpg
* @return repertoire"/"nom du fichier
*/
public String SaveFromFile(Frame _frame, String _title, String _path, String _fileFilter) {
FileDialog fileDialog = new FileDialog(_frame, _title, FileDialog.SAVE);
fileDialog.setFile(_fileFilter);
fileDialog.setDirectory(_path);
fileDialog.setLocation(50, 50);
fileDialog.setDirectory(_path);
fileDialog.setVisible(true);
return fileDialog.getDirectory() + fileDialog.getFile();
}
//Afficher les boites de dialogue
System.out.print("Ouverture de:" + LoadFromFile(this, "Ouvrir un fichier ...", ".\\", "*.jpg"));
System.out.print("enregistrement de:" + SaveFromFile(this, "Enregistrer un fichier ...", ".\\", "*.jpg"));
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|
le //
|