Xavlord |
Bonjour,
Ça fait un bon moment que je cherche sur Google ou autre mais j'ai rien trouvé de très concluant.
Alors voilà, j'ai fait 2 fenêtres parcourir avec 2 filtres, .doc et .xls.
Maintenant il me reste plus qu'a trouver comment ouvrir le fichier grâce au logiciel correspondant à son extension.
Pourriez vous m'aider s'il vous plait ??
Merci !
MyFileSystemView.java
Code :
- import java.io.*;
- import javax.swing.*;
- import javax.swing.filechooser.*;
- public class MyFileSystemView extends FileSystemView {
- private final FileSystemView system = FileSystemView.getFileSystemView();
- private final File root;
- private MyFileSystemView(File root) {
- // On récupère le chemin canonique du répertoire
- this.root = root;
- }
- public static JFileChooser createFileChooser(File root) throws IOException {
- root = root.getCanonicalFile(); // On récupère le chemin canonique
- if (!root.isDirectory()) {
- throw new IllegalArgumentException("root must be a directory" );
- }
- return new JFileChooser(root, new MyFileSystemView(root));
- }
- public boolean isRoot(File f) {
- return this.root.equals(f.getAbsoluteFile());
- }
- public boolean isFileSystemRoot(File dir) {
- return this.root.equals(dir.getAbsoluteFile());
- }
- public File[] getRoots() {
- return new File[] { this.root.getAbsoluteFile() };
- }
- public File getHomeDirectory() {
- return this.root.getAbsoluteFile();
- }
- public File getDefaultDirectory() {
- return this.root.getAbsoluteFile();
- }
- public File getParentDirectory(File dir) {
- if(isRoot(dir)) {
- // Pas de parent director pour le répertoire root :
- return this.root;
- }
- return system.getParentDirectory(dir);
- }
- public File createFileObject(String path) {
- // Fichier crée lorsqu'on tape le nom directement :
- // On crée le fichier selon le répertoire root :
- File file = new File(this.root, path);
- if (file.exists()) {
- return file;
- }
- return this.root;
- }
- protected File createFileSystemRoot(File f) {
- return null;
- }
- public File createFileObject(File dir, String filename) {
- return system.createFileObject(dir, filename);
- }
- public File createNewFolder(File containingDir) throws IOException {
- return system.createNewFolder(containingDir);
- }
- public File getChild(File parent, String fileName) {
- return system.getChild(parent, fileName);
- }
- public File[] getFiles(File dir, boolean useFileHiding) {
- return system.getFiles(dir, useFileHiding);
- }
- public String getSystemDisplayName(File f) {
- return system.getSystemDisplayName(f);
- }
- public Icon getSystemIcon(File f) {
- return system.getSystemIcon(f);
- }
- public String getSystemTypeDescription(File f) {
- return system.getSystemTypeDescription(f);
- }
- public boolean isComputerNode(File dir) {
- return system.isComputerNode(dir);
- }
- public boolean isDrive(File dir) {
- return system.isDrive(dir);
- }
- public boolean isFileSystem(File f) {
- return system.isFileSystem(f);
- }
- public boolean isFloppyDrive(File dir) {
- return system.isFloppyDrive(dir);
- }
- public boolean isHiddenFile(File f) {
- return system.isHiddenFile(f);
- }
- public boolean isParent(File folder, File file) {
- return system.isParent(folder, file);
- }
- public Boolean isTraversable(File f) {
- return system.isTraversable(f);
- }
- public static void main(String[] args) throws IOException {
- JFileChooser chooser = MyFileSystemView.createFileChooser(new File("C:\\Documents and Settings\\Xavier\\Mes documents\\Documents" ));
- chooser.showOpenDialog(null);
- }
- }
|
MonFiltre :
Code :
- import java.io.*;
- import java.io.File;
- import javax.swing.filechooser.FileFilter;
- public class MonFiltre extends javax.swing.filechooser.FileFilter {
- String [] lesSuffixes;
- String laDescription;
- public MonFiltre(String []lesSuffixes, String laDescription){
- this.lesSuffixes = lesSuffixes;
- this.laDescription = laDescription;
- }
- boolean appartient( String suffixe ){
- for( int i = 0; i<lesSuffixes.length; ++i)
- if(suffixe.equals(lesSuffixes[i]))
- return true;
- return false;
- }
- public boolean accept(File f) {
- if (f.isDirectory()) return true;
- String suffixe = null;
- String s = f.getName();
- int i = s.lastIndexOf('.');
- if (i > 0 && i < s.length() - 1)
- suffixe = s.substring(i+1).toLowerCase();
- return suffixe != null && appartient(suffixe);
- }
- // la description du filtre
- public String getDescription() {
- return laDescription;
- }
- }
|
Mon appel :
Code :
- if (e.getSource() == menuItemOuvrirModifQuestionnaire){
- MonFiltre filtreDoc = new MonFiltre(
- new String[]{"doc"},"Fichiers Word (*.doc)" );
- JFileChooser selecteur = new JFileChooser();
- selecteur.addChoosableFileFilter(filtreDoc);
- int result = selecteur.showOpenDialog(this);
- if (result == JFileChooser.APPROVE_OPTION)
- nomFichier = selecteur.getSelectedFile() + "";
- cheminFichier = selecteur.getSelectedFile().getAbsolutePath();
- }
|
|