2010-08-25 80 views
2

J'ai l'intention de remplir un JFileChooser avec les noms d'une base de données, mais utiliser la boîte de dialogue JFileChooser standard pour charger, supprimer, enregistrer et enregistrer sous. Je veux donner aux utilisateurs l'impression qu'ils travaillent sur un système de fichiers alors que j'utilise une base de données au backend pour enregistrer les changements. L'utilisateur ne devrait pas être en mesure de naviguer dans un répertoire différent pour enregistrer ou enregistrer sous. Je veux utiliser la même boîte de dialogue JFileChooser mais avec un bouton d'annulation et un autre bouton (supprimer | enregistrer | enregistrer sous | charger).Comment pré-remplir un JFileChooser va "nom de fichier"?

Répondre

1

Impossible d'utiliser le JFileChooser. JFileChooser fonctionne uniquement sur les fichiers java.io.File.

Pour ce faire, vous devez sous-classer java.io.File et créer une sorte de faux système de fichiers qui serait très moche.

Vous allez devoir créer votre propre composant de dialogue de sauvegarde ou trouver un autre composant similaire à utiliser. JFileChooser n'est pas ce que vous voulez.

+0

Ou simplement surcharger la plupart des méthodes utiles dans JFileChooser. Si les fichiers importants sont définitifs, il suffit de copier la source – TheLQ

+5

Oui, cela peut être fait en utilisant 'JFileChooser', en étendant' File' et 'FileSystemView'. C'est ainsi que les dossiers virtuels comme "My Computer" sous Windows sont représentés dans un "JFileChooser". Appelez-le moche si vous voulez mais ce n'est pas aussi laid que l'implémentation d'une boîte de dialogue d'ouverture/de sauvegarde personnalisée. – finnw

1
JFileChooser chooser = new JFileChooser() 
chooser.setSelectedFile(new File("c:/yourPath/someFile")); 
+1

"J'ai l'intention de remplir un JFileChooser avec des noms ** à partir d'une base de données **, mais utiliser le JFileChooser standard" – TheLQ