IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

Ouvrir un fichier dans une JFrame


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Par défaut Ouvrir un fichier dans une JFrame
    Bonjour,
    J'essaye d'ouvrir un fichier, peu importe son extension, dans une JFrame.
    J'ajoute à la JFrame un WebBrowser à qui je donne une URL qui contient l'adresse absolue du fichier à afficher.
    Pour l'instant j'essaye avec une image .jpg qui est à cette adresse là
    C:\Wolfgang\Workspace\cres\dossiers\recepisse.jpg (sous Windows)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package controleur;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.net.URL;
    import java.io.File;
    import javax.swing.JFrame;
    import org.jdesktop.jdic.browser.WebBrowser;
     
    import vue.DossierUnique;
     
    public class but_dossier_unique_recepisse implements ActionListener {
     
    	String num_asso;
     
    	public void actionPerformed(ActionEvent e) {
    		num_asso=DossierUnique.num_asso;
    		try{
    			//Création de l'interface graphique
    			JFrame frame = new JFrame("Recepisse");
    			File f = new File("dossiers/recepisse.jpg");
    			URL url = new URL("file:\\"+f.getAbsolutePath());
    			System.out.println(url);
     
    			WebBrowser browser = new WebBrowser();
    			browser.setURL(url);
     
    			frame.add(browser);
    			frame.setSize(800,600);
    			frame.setVisible(true);
    			}
    		catch(Exception ex){
    			ex.printStackTrace();
    			}
    	}
    }
    Durant l'exécution du bouton, j'affiche dans la console l'URL qui doit se lancer avec le WebBrowser (pour vérifier).

    Au final, la JFrame apparaît, mais vide.
    La console d'Eclipse m'affiche ceci:

    file:/C:/Wolfgang/Workspace/cres/dossiers/recepisse.jpg
    isDefaultBrowserMozilla
    isDefaultBrowserMozilla

    Can't execute the native embedded browser. Error message: java.io.IOException: Syntaxe du nom de fichier, de répertoire ou de volume incorrecte

    Du coup je pense que j'ai des problèmes avec les / et les \ (je ne sais jamais s'il faut en mettre 1 ou 2, si c'est / ou \)

    Merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    salut,

    les JEditorPane ne sont pas faites pour ce genre de problemes ?

    P.S. : il faut 4 '\' pour avoir une string avec "\\"

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Par défaut
    J'ai remplacé le WebBrowser par JEditorPane:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //Création de l'interface graphique
    			JFrame frame = new JFrame("Recepisse");
    			File f = new File("dossiers\\recepisse.jpg");
    			String url = new String("file:\\"+f.getAbsolutePath());
    			System.out.println(url);
     
    			JEditorPane pane = new JEditorPane();
    			pane.setPage(url);
     
    			frame.add(pane);
    			frame.setSize(800,600);
    			frame.setVisible(true);
    La console ne m'affiche pas d'erreur, mais la JFrame qui s'ouvre affiche directement le texte crypté de l'image... Le JEditorPane n'arrive pas à interpréter l'image...
    Faut-il installer une librairie pour qu'il puisse décoder l'image? Si oui, y en-a-t-il pour pdf, doc, excel...

    Je vais réessayer avec le WebBrowser en attendant...

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Par défaut
    En fait en cherchant, j'ai trouvé un post d'un gars qui a fait une classe FileLauncher qui lance des fichiers avec le programme adapté en fonction de l'extension.
    Je l'ai modifié, parce que je voudrais que les fichiers s'ouvrent avec l'explorateur Web.
    Problème, l'adresse de .exe de l'explorateur est entrée en dur, et comme mon application est destinée à être installée sur plusieurs postes (avec pas forcément la même adresse pour le .exe), je voudrais pouvoir récupérer cette adresse selon le poste qui utilise mon application.

    J'ai vu que la fonction getBrowserPath() permet cela, mais je ne sais pas à quoi l'appliquer...

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Par défaut
    Bon désolé, j'ai fait la discussion tout seul, mais j'ai vu l'outil Desktop qui permet d'ouvrir directement les fichiers avec le programme correspondant.

    Du coup je poste mon code si quelqu'un tombe ici en cherchant cette solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    package controleur;
     
    import java.awt.Desktop;
    import java.io.File;
    import java.io.IOException;
     
    public class FileLauncher {
     
    	static public void launch(File f) {
     
    		if(Desktop.isDesktopSupported())
    			{if(Desktop.getDesktop().isSupported(Desktop.Action.BROWSE))
    				{try {Desktop.getDesktop().open(f);}
    				catch (IOException e) {e.printStackTrace();}
    				}
    			}
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir un fichier dans une fenetre Windows
    Par mimish dans le forum Langage
    Réponses: 8
    Dernier message: 24/03/2010, 22h00
  2. Ouvrir un fichier dans une frame
    Par malabarbe dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2008, 01h00
  3. Ouvrir un fichier dans une nouvelle fenêtre
    Par paradeofphp dans le forum ASP.NET
    Réponses: 17
    Dernier message: 20/11/2007, 16h31
  4. Réponses: 5
    Dernier message: 17/01/2007, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo