[JAVA] Ouvrir un fichier avec un bouton

Résolu/Fermé
Tyrael - 17 août 2009 à 14:21
 hg - 3 mai 2013 à 15:45
Bonjour tout le monde,
J'ai actuellement un petit problème que je n'arrive pas à résoudre entièrement avec mes recherche google.
Je voudrai ouvrir un fichier à partir d'un bouton (non c'est pas vrai c'est marqué dans le titre ? Ah mince ^^) donc j'ai cherché sur google et j'ai trouvé ceci :
try {
Desktop.getDesktop().open(new File("nom du fichier.extension"));
}catch (IOException f) {
// TODO Auto-generated catch block
f.printStackTrace();
}


Ca fonctionne très bien pour les .jpg, gif, le problème c'est que le fichier que je voudrai ouvrir est un *.avi. Il apparait ça dans la console quand je clique sur le bouton pour ouvirir le fichier :
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Alors première question est-il possible d'ouvrir un *.avi (avec le lecteur windows média ou le lecteur Divx) ?

La seconde partie de mon problème c'est que j'aimerai ne pas avoir à mettre le chemin du fichier à cet endroit là du code mais le récupérer d'une autre classe, comme je l'ai fais pour l'image de mon bouton ici :
try {
            img = ImageIO.read(this.fichier);
			} catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
			}


Or quand je mets Desktop.getDesktop().open(this.video); une erreur apparait :"video canot be resolved or is not a field"
Ma deuxième question est simple comment faire pour recupérer le chemin du fichier comme pour l'image ?

Voici le codage complet de ma classe :
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Bouton extends JButton{
	
	private String name;
	private File fichier;
	private Image img;
	private File video;
	
	public Bouton(String str, File file, File vid){
		
		this.name=str;
		this.fichier=file;
		this.video=vid;
		try {
            img = ImageIO.read(this.fichier);
			} catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
			}
		this.setText(this.name);
		this.addActionListener(new BoutonListener());
		}
		
		public void paintComponent(Graphics g){
			//this.setLayout(new GridLayout(3,2));
			this.setPreferredSize(new Dimension(100,125));
			g.drawImage(img,0,0,100,100,this);
			g.drawString(this.name, 6*this.getWidth()/16, this.getHeight()-5);
			
			}
		public void actionPerformed(ActionEvent arg0) {
			
    }

		class BoutonListener implements ActionListener{
			
			public void actionPerformed(ActionEvent e) {
				try {
				Desktop.getDesktop().open(this.video);
				}catch (IOException f) {
		            // TODO Auto-generated catch block
		            f.printStackTrace();
					}
        }

			
		}

}
A voir également:

7 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 août 2009 à 10:02
Bonjour,

Regarde sur internet comme lancer un programme tiers avec Java.
Si ton vlc se lance en ligne de commande, rien ne t'empêche donc d'exécuter une commande système dans Java pour lancer ton application.
5
Je repond juste à la premiere question. Pour les .avi telecharge VLC il est très bien et meme capable de lire de la HD ^^.
0
Ca fait un moment que j'ai VLC mais ce n'est pas ça le problème.
Quelquesoit le programme définie par défaut pour ouvrir un *.avi il ne s'ouvre :(
Merci quand même
0
Bon petite rectification ^^
J'ai testé avec DivX player, ça marche pour ouvrir l'*.avi mais je préfèrerai l'ouvrir avec VLC ou Lecteur Windows.
Mais quand je choisi un de ces deux programmes par défaut ça ne s'ouvre plus.

Me reste toujours l'histoire de récupérer le lien à partir d'une autre classe :(
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est bon j'ai résolu mon 2ème problème.
Mais est-il possible de "dire à JAVA" d'ouvrir mon *.avi avec VLC ? Sans le définir comme programme par defaut car ça ne marche pas.
En gros j'aimerai si je clique directement sur le fichier il s'ouvre avec Lecteur windows et quand je clique sur mon bouton dans ma fenêtre JAVA il s'ouvre avec VLC, associer les *.avi à VLC via une commande dans JAVA.
J'espère que je suis clair ^^'
Déjà que je parle seul ça commence à faire peur mdr
0
Ah j'y avais pas pensé.
Alors après beaucoup de recherche et de bidouillage de code j'ai enfin trouvé la solution !
Merci pour le tuyau :)
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
21 août 2009 à 11:13
Bonjour,

Merci de mettre la solution ici pour ceux qui auront le même problème que toi ;)
0
soluition please. J'ai le même probleème
0