2011-09-27 1 views
1

Est-ce que quelqu'un sait comment détecter si l'utilisateur a sélectionné le bouton d'annulation ou le disque racine dans java.awt.FileDialog sous Mac OS (10.6 - Snow Leopard) ????Comment détecter si l'utilisateur a appuyé sur le bouton Annuler ou sur la racine sélectionnée (disque principal) avec java.awt.FileDialog sous MAC OS?

J'ai le code ci-dessous:

System.setProperty("apple.awt.fileDialogForDirectories", "true"); 
FileDialog fd = new FileDialog(this); 
fd.setDirectory(_projectsBaseDir.getPath()); 
fd.setLocation(50,50); fd.setVisible(true); 
File selectedFile = new File(fd.getFile()); 
System.setProperty("apple.awt.fileDialogForDirectories", "false"); 

Mais si l'utilisateur sélectionne disque principal sur le panneau gauche (ci-dessous Devices), la sélection renvoie null, je ne peux pas différentier si l'utilisateur disque principal sélectionné ou presssed le bouton cancel . (les deux actions renvoient null).

Répondre

0

S'il est possible d'utiliser Swing, je recommande fortement d'utiliser JFileChooser. Alors votre code ressemblerait à ceci:

JFileChooser fc = new JFileChooser(); 
fc.setCurrentDirectory(_projectsBaseDir.getPath()); 
fc.setLocation(50,50); 
int ret = fc.showOpenDialog(this); // Use .showSaveDialog(this) for save dialog 
if(ret == JFileChooser.APPROVE_OPTION) 
    File selectedFile = fc.getSelectedFile(); 

Espérons que cela aide.

+1

J'ai besoin de dialogues natifs, c'est pourquoi j'utilise java.awt.FileDialog. – user967580

Questions connexes