En Java, comment implémenter quelque chose comme l'Explorateur de fichiers?


Je cherche un widget vraiment simple: vue arborescente sur le volet gauche, contenu du dossier sur la droite, commutable entre les icônes, les vignettes ou la vue détaillée. Fondamentalement, une émulation fonctionnelle (pas pixel pour pixel) de l'Explorateur de fichiers Windows, mais dans l'application Java. Comment faire cela en utilisant uniquement des bibliothèques Java intégrées? Ou un cadre très léger?

PAS UN DUPLICATA

Ma question est différente de ce qui précède et je réalise maintenant que c'est un peu plus difficile à expliquer que ce à quoi je m'attendais initialement. Deux précisions:

  1. Ma question ne concerne pas un sélecteur de fichiers. Je pose des questions sur un type de boîte de dialogue Explorateur de fichiers. La différence est qu'un sélecteur de fichier est vraiment concentré sur une tâche, choisir un fichier. Un explorateur de fichiers est un peu moins concentré et permet à l'utilisateur de naviguer sans objectif clair.
  2. Ma question ne concerne pas l'émulation UI / L&F du système d'exploitation natif. À tous. Je pose des questions sur la capacité de base de affichez le contenu du système de fichiers à l'aide d'icônes et de vignettes. Le style et les bordures, etc. ne font pas partie de ma question.

MODIFIER

Je cherche quelque chose comme ça entrez la description de l'image ici

Remarquez en quoi c'est différent de cela (JFileChooser) entrez la description de l'image ici

Author: Alex R, 2015-12-23

3 answers

JFileChooser le fera si vous voulez quelque chose intégré à Java.

Https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html

 0
Author: Josh Chappelle, 2015-12-23 21:19:32

Si vous n'utilisez pas Swing mais SWT (comme Eclipse), vous pouvez utiliser SWT FileDialog

 -1
Author: luksch, 2015-12-23 21:24:18

Vous pouvez utiliser la bibliothèque AWT pour rendre l'intégralité de l'Explorateur de manière personnalisée. Alors que la seule partie difficile à ce sujet est d'utiliser correctement les gestionnaires de mise en page pour obtenir les composants exactement où vous le souhaitez et d'ajouter des écouteurs d'événement pour chaque bouton, l'utilisation d'AWT ne le ferait pas ressembler à Explorer sur différents systèmes d'exploitation car AWT utilise les composants système natifs.


Vous pouvez vérifier si le système d'exploitation n'est pas Windows, puis utiliser Swing si ce n'est pas le cas. Dans ce cas, vous devrez retexturez chaque composant utilisé de manière à ce que son apparence soit identique à celle de votre version Windows ciblée. Même si vous faisiez cela, vous deviez toujours changer l'apparence du JFrame, ce qui est possible en utilisant la magie noire, mais assez obscur. Vous pouvez le faire d'une manière très originale, juste setUndecorated(true)et manipuler les limites du JFrame jusqu'à ce qu'il vous permette de dessiner en dehors de le JFrame, de sorte que vous puissiez dessiner la décoration des Fenêtres autour sans redimensionner la fenêtre. Sur le dessus de cela, vous devrez également vérifier s'il est maximisé, car les fenêtres maximisées ne se ressemblent pas tout à fait dans Windows.


Pour raccourcir les choses, utilisez simplement JFileChooser si vous souhaitez simplement permettre à l'utilisateur de sélectionner un ou plusieurs fichiers. Il n'y a pas vraiment de sens à recréer Explorer, mais si c'est ce que vous voulez faire, je ne vous arrête pas.

 -1
Author: ThePyroEagle, 2015-12-23 21:38:10