Posez votre question Signaler

[JAVA] Ouvrir un fichier avec un bouton [Résolu]

Tyrael - Dernière réponse le 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();
					}
        }

			
		}

}
Lire la suite 
Réponse
+3
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Je repond juste à la premiere question. Pour les .avi telecharge VLC il est très bien et meme capable de lire de la HD ^^.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 :)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Merci de mettre la solution ici pour ceux qui auront le même problème que toi ;)
hg- 3 mai 2013 à 15:45
soluition please. J'ai le même probleème
Répondre
Ajouter un commentaire
Ce document intitulé «  [JAVA] Ouvrir un fichier avec un bouton  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.