-
J File Chooser
Je ne comprends pas tout du fonctionnement de la classe JFileChooser.
En effet, je dois l utiliser pour une apllication qui visualise des PDF. Dans un menu je voudrais pour avoir un cham ouvrir qui permet d'ouvrir d'autres PDF une fois le code executé.
J'arrive a faire le JFileChooser mais je ne sais pas comment en double cliquant sur un PDF, l'afficher. Il faudrait que ce double clic permettre de refaire appel a mon programme pour afficher le PDF correspondant. Ceci etant je ne sais pas comme appliquer ce "listener" au fichier selectionné
Merci d avance pour toute réponse ou eclairement!
@+
-
Je ne suis pas sur d'avoir bien saisi ton probleme... tu veux que ton application ouvre des fichiers PDF, c'est bien ça?
Il faut que tu saches que ce n'est pas vraiment un probleme de JFileChooser. Ce composant, comme son nom indique, permet à l'utilisateur de choisir un fichier. Ce qu'il renvoie à la fin, c'est le chemin du fichier choisi. C'est tout - en aucun ça ne gère l'ouverture ou l'execution de fichiers choisis. C'est à toi ensuite de traiter le fichier selectionné par l'utilisateur - l'ouvrir, l'exécuter...
Maintenant, si tu veux visionner de PDF dans ton appli, je te préviens que c'est loin d'être évident - pour le faire vraiment bien, il faudrait lire le code du pdf et l'interpréter correctement... En tout cas Java n'ouvre pas de pdf "de lui même". En revanche, il existe des librairies qui le font, mais il s'agit à ce moment de visionneuses complètes (des imitations de Acrobat Reader, en quelque sorte). Souvent, le plus simple c'est de laisser au système le soin d'ouvrir le PDF avec la visionneuse par défaut (Acrobat dans 99% de cas).
-
Comme le dit Marcin, le JFileChooser, n'est là que pour choisir un fichier, comme son nom l'indique.
Ensuite pour ouvrir un pdf, tu as plusieurs choix :
- Si tu veut l'ouvrir dans ton appli, tu vas devoir trouver une api qui le fait pour toi
- Si tu veut l'ouvrir avec un autre programme :
- Tu peut prendre JDic qui va te l'ouvrir directement avec le programme par défaut
- Tu peut aussi ouvrir en ligne de commande
Par contre si tu veut vraiment qu'au double clic sur un fichier dans le JFileChooser, ca ouvre le fichier, tu vas être obligé de faire ta propre classe, à moins qu'un MouseListener et ouvrir getSelectedFile suffisent
-
En fait, j'ai une apllication qui lit déja les pdf que j'ai fait entièrement moi même. Comme vous les dites J File Chooser permet uniquement de recuperer le chemin parcouru jusqu'au fichier (c est en fait ca que je voulais savoir!).
Ce que j'aimerais c'est au double clic du pdf en question faire appel a mon programme pour ouvrir le pdf. Cependant je ne sais pas du tout comment faire. Je ne sais d ailleurs même pas comment faire pour appliquer cette sorte de listener au fichier pdf en question pour qu il execute mon application.
J espere que c clair car j explique pas très bien!
Merci pour d eventelles réponses!
-
Je crois pas que ce soit possible sans le coder soi-même (une classe dérivant de JFileChooser et tu modifies des trucs), mais par contre, ca te suffit pas de sélectionner le fichier puis de cliquer sur ouvrir ?
-
Salut,
le double clic dans un JFileChooser va automatiquement fermer la fenêtre et rendre la main à ton application.
La methode 'showOpenDialog' va te retourner un résultat de type int. Test si ce résultat est bien JFileChooser.APPROVE_OPTION. Si tel est le cas tu vas pouvoir récupérer le(s) fichiers qui aura(-ont) été sélectionné(s) en faisant appel à la méthode getSelectedFile() (ou getSelectedFiles()).
Une fois l'objet de type File récupéré, là tu vas pouvoir le passer en paramètre à ton appication qui pourra en faire l'ouverture.
Sinon j'ai fait une applic et j'ouvrais des pdf en utilisant la commande suivante :
--> WIN : Runtime.getRuntime().exec(new String[]{"rundll32", "url.dll,FileProtocolHandler", fileName});
--> MAC : Runtime.getRuntime().exec(new String[]{"open", fileName});
On utilisera dans ce cas le viewer PDF par défaut de la machine.
Voilà j'espère que ça pourra t'aider.
-
Pour ouvrir le fichier avec le viewer par defaut autant passer par un Desktop.open(File f) venant de l'API tirce JDIC, qui sera surement un tant soit peu plus propre
-
Merci g reussi à regler mes problemes!
Merci encore!
-
Met le tag :resolu: , il se trouve tout en bas de la page ;)
++