2009-08-07 14 views
1

J'essaie d'utiliser un sélecteur de fichier FileDialog parce que j'ai vraiment besoin de l'application java pour avoir le sélecteur de fichier Apple natif (je sais que nous détestons tous déteste le manque de portabilité mais c'est Ce dont j'ai besoin). J'essaie de faire en sorte que mon sélecteur de fichier permette à l'utilisateur de choisir les fichiers qui se terminent par .ws. Voici ce que j'ai essayé:Utiliser un FileDialog pour choisir un fichier d'une certaine extension

  FileDialog fd = new   

      FileDialog(_sharedInstance,rsc.str("480"),FileDialog.LOAD); 
      // fd.setFile("*.ws"); 
      class WSFilter implements FilenameFilter { 
       public boolean accept(File dir, String name) { 
        return (name.endsWith(".ws")); 
       } 
      }; 
      FilenameFilter wsFilter = new WSFilter(); 

      fd.setFilenameFilter(wsFilter); 
      fd.setDirectory(_projectsBaseDir.getPath()); 
      fd.setLocation(50,50); 

      // fd.setFile("*"); 
      fd.setVisible(true); 

Pour une raison quelconque, mon sélecteur de fichier ne me permettra pas de choisir des fichiers. Des idées?

Répondre

3

réponse était que j'ai besoin de cet appel: System.setProperty ("apple.awt.fileDialogForDirectories", "false") ;

+0

Y a-t-il des documents pertinents auxquels vous pouvez vous relier? –

+0

Pas vraiment. Dans le fil suivant quelqu'un m'a expliqué comment vous avez besoin de définir cette propriété globale afin de permettre à FileDialog d'accepter des diectories, j'avais juste oublié de le remettre en place. C'est l'une des nombreuses raisons pour lesquelles les gens vous diront de ne pas utiliser FileDialog. http://stackoverflow.com/questions/1224714/how-can-i-make-a-java-filedialog-accept-directories-as-its-filetype-in-os-x – Mike2012

1

Pourquoi ne pas utiliser JFileChooser?

JFileChooser fileChooser = new JFileChooser(new File(filename)); 
fileChooser.addChoosableFileFilter(new MyFilter()); 

class MyFilter extends javax.swing.filechooser.FileFilter { 
    public boolean accept(File file) { 
     String filename = file.getName(); 
     return filename.endsWith(".java"); 
    } 
    public String getDescription() { 
     return "*.java"; 
    } 
} 
+0

Parce que j'ai besoin d'utiliser le sélecteur de fichier natif mac et JFileChooser ne le permet pas. – Mike2012

1

Avez-vous déjà demandé cela?

De toute façon, vous pouvez essayer de changer L & F et continuer à utiliser JFileChooser.

J'ai entendu celui-ci est bonne:

Quaqua Look and Feel

alt text

+0

Nous utilisons actuellement quaqua, mais beaucoup d'utilisateurs de mac estiment que ce n'est pas une interprétation adéquate de l'interface graphique de Mac. J'ai donc été chargé d'implémenter les sélecteurs de fichiers pour utiliser le sélecteur de fichiers natif. – Mike2012

+0

mmhh Je vois, en fonction de la pertinence de cela, vous pouvez soit implémenter votre propre sous-classe et ajouter les parties manquantes (ce qui serait assez difficile) ou vous pouvez créer une petite application native qui retourne le chemin de fichier invoqué. Cela ne devrait pas être trop difficile à faire (quand vous connaissez Objective-C: P) T – OscarRyz