2013-07-19 3 views
0

J'ai une application swing que je voudrais utiliser Windows7/Vista de style FileDialogs et ont trouvé une solution raisonnable en utilisant SWT conjointement avec balançoire: Does Swing support Windows 7-style file choosers?Un SWT FileDialog sélectionnés uniquement les répertoires Swing

Cependant, maintenant je J'essaie d'obtenir cette même boîte de dialogue pour n'accepter que les répertoires (le bouton "Select Folder" au lieu du bouton "Open").

Je ne veux utiliser le DirectoryDialog typique:

enter image description here



Je veux utiliser la boîte de dialogue avec les favoris sur la gauche, la barre d'adresse sur le dessus, et la possibilité de sélectionner dossiers:

enter image description here

Quelqu'un sait comment y parvenir?

Les réponses sont grandement appréciées.

+2

La réponse simple est: Vous ne pouvez pas. C'est ce à quoi sert 'DirectoryDialog'. Il n'y a actuellement aucun moyen d'obtenir la boîte de dialogue "Windows 7 style" pour choisir les répertoires avec SWT, désolé. – Baz

+0

Qu'en est-il de tout autre framework en Java? Est-ce juste que Java ne peut pas utiliser ce type de dialogue qui ne sélectionne que les dossiers? Cela semble étrange. – MGreenfield

+0

Aucune idée, je n'utilise pas d'autres frameworks. – Baz

Répondre

0

Baz l'a déjà dit: Il n'est pas possible d'obtenir ce dialogue en utilisant SWT. Pour répondre à votre question à propos d'autres frameworks: Je crois qu'il y en a beaucoup, par exemple vous pouvez utiliser Jide. Vous ne recevez pas la boîte de dialogue que vous voulez, mais au moins vous obtenez une version améliorée (FolderChooser) avec quelques avantages:

  • Convenience-Boutons (Bureau, Mes documents, ...)
  • Supprimer/Créer un nouveau répertoire
  • barre d'adresse

Et le meilleur de tout cela: Vous obtenez gratuitement, parce que c'est dans la « couche commune ». Vous pouvez essayer FolderChooser en lançant le projet Demo-WebStart.

+0

J'ai une sorte de solution pour ça: – Andy

0

Il est un peu un hack:

import org.eclipse.swt.*; 
import org.eclipse.swt.widgets.*; 

public class Demo{ 

    public static void main(String [] args) { 
     Display display = new Display(); 
     Shell shell = new Shell(display); 
     FileDialog dialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI); 
     dialog.setFilterPath("c:\\"); 

     //The extension doen't excist! 
     dialog.setFilterExtensions(new String[] {"xyz"}); 
     //You can also use " "; 

     dialog.open(); 
     shell.close(); 
     while (!shell.isDisposed()) { 
      if (!display.readAndDispatch()) display.sleep(); 
     } 
     display.dispose(); 
    } 
} 

Je tryed dehors et je pense, cela fonctionne bien!

Questions connexes