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

AWT/Swing Java Discussion :

Ouvrir fichier par l'intermédiare d'un JMenuItem


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut Ouvrir fichier par l'intermédiare d'un JMenuItem
    Salut
    Malgré le fait que votre site ma déjà bien aidé là je bloque.J'ai un peu cherché sur le net mais c'est difficile de trouver la réponse exact alors je m'en remet à vos connaissances.

    Je travaille sous éclipse, j'ai créé une fenetre(JFrame) et un menu(JMenuBar) et j'aimerais savoir si c'est possible d'ouvrir un fichier HTML(test.html) en cliquant sur un sous menu du menu(JMenuItem nommé assistant).
    J'ai déjà fait ma fonction ActionListener qui provoque une action si on clique sur le sous menu assistant.
    Voici quelque ligne de mon programme qui peuvent subir des changements:

    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
    public class Fenetre extends JFrame{
    protected JMenuBar menu;    
    protected JMenu menuT,aide;   
    protected JMenuItem partie,quitter,aProposDe,assistant;
    //plein d'autre composant
     
    public Fenetre(){
     
    menu=new JMenuBar();           
    menu.setPreferredSize(new Dimension(700,20));
    menuT=new JMenu("Partie");           
    partie=new JMenuItem("Nouveau");           
    quitter=new JMenuItem("Quitter");
    aide=new JMenu("Aide");
    aProposDe=new JMenuItem("A Propos De");          
    assistant=new JMenuItem("Assistant");
    //plein d'autre truc
    assistant.addActionListener(new AssistantListener());
    }
     
    class AssistantListener implements ActionListener{    	
    public void actionPerformed(ActionEvent e){
    if(e.getSource().equals(assistant))
    -->C'est surement ici que doit se trouver ma réponse a ma question: Que faut t'il mettre pour ouvrir une page HTML??
    }
    }
    J'avais penser à un FileReader mais je crois que sa lis et affiche le texte alors que je veux l'ouverture de ma page HTML.
    Je ne suis qu'un débutant alors essayé d'être clair et pas trop compliqué.
    Merci

  2. #2
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Tu peux charger directement une page html dans le composant javax.swing.JTextPane via sa méthode setPage.
    Tu trouveras un exemple ici : http://java.sun.com/docs/books/tutor...ditorpane.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Salut,merci pour cette réponse mais vu sa difficulté ne n'ai pas pu la mettre en application

    Dsl pour le fait que mon sujet soit mal placé et que les balise ne soit pas misent(je ne le savais pas) mais bon je suis débutant alors j'ai une excuse
    Alors voila ce que j'ai rajouté

    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
     
    public class Fenetre extends JFrame{
    //les trucs d'avant
    protected JEditorPane editorPane;
     
    public Fenetre(){
     JEditorPane editorPane = new JEditorPane();
        	   editorPane.setEditable(false);
    //là des chose qui ne nous intéresse pas
    JScrollPane editorScrollPane = new JScrollPane(editorPane);
    editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    editorScrollPane.setPreferredSize(new Dimension(250,145));
    editorScrollPane.setMinimumSize(new Dimension(10,10));
    //le truc d'avant il faut peut etre le mettre dans une nouvelle fenetre??
    //encore plein de chose
    assistant.addActionListener(new AssistantListener());
    }
     
    class AssistantListener implements ActionListener{
        	public void actionPerformed(ActionEvent e){
        		if(e.getSource().equals(assistant))
        		{try{
        			editorPane.setPage("AideHTML/PageAccueil.html");
        		}catch(IOException exception){System.err.println("Attempted to read a bad URL: ");}
        	    }
        	}
     
        }
    Et la il me met une grosse erreur indescriptible
    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
     
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at Fenetre$AssistantListener.actionPerformed(Fenetre.java:536)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
    Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.AbstractButton.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	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)
    536 c'est la ligne qui pointe sur-->editorPane.setPage("AideHTML/PageAccueil.html");
    alors si quelqu'un peux m'expliquer ce charabia je lui en serait très reconnaissant

  4. #4
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    cela veut dire que ton objet editorPane n'est pas instancié quand la methode actionPerformed arrive a l'execution du code.

    Ce qui est normal vu que l'editorpane que tu instancies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     JEditorPane editorPane = new JEditorPane();
    est declaré comme une variable locale (tu remets le type devant).

    Donc la variable global que tu as declaré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    protected JEditorPane editorPane;
    et qui est appelé dans ta méthode actionPerformed n'est jamais utilisée.

    il te suffit simplement d'enlever 'JEditorPane' dans la premiere ligne de ton constructeur et cela devrait rouler

    pour resumer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Fenetre(){
        editorPane = new JEditorPane();
        editorPane.setEditable(false);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    Salut biozaxx

    En effet là c'est une erreur des plus stupide
    Mais maintenant lorsque j'effectue l'action il me renvoie l'exception en cas de non présence de la page. Ceci est peut être du à un manque de précision de ma part, en effet la page que je veux ouvrir est sur mon PC donc c'est pas forcément un URL je crois.
    Sinon une autre question si jamais l'ouverture marche, sa ouvre seulement le fichier ou je doit créer une fenetre pour l'accueillir??

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut
    C'est bon j'y suis arrivé en fait j'ai cré une nouvelle fenetre et j'ai importé mon editorPane
    Pour ceux que sa intéresse
    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
     
    public class Fenetre extends JFrame{
    protected JFrame fenetreAide
    //...
    public Fenetre(){
    //...
    fenetreAide=new JFrame();
    fenetreAide.setSize(1000,800);
    fenetreAide.setLocationRelativeTo(null);
    //...
    }
     class AssistantListener implements ActionListener{
        	public void actionPerformed(ActionEvent e){
        		if(e.getSource().equals(assistant))
        		{try{
        			//Help=new URL("AideHTML/PageAccueil.html");
        	editorPane.setPage("file:///[lettredisque]:/Espace%20de%20travail%20java/ProjetGL/AideHTML/PageAccueil.html");
        		}catch(IOException exception){System.err.println("Attempted to read a bad URL: ");}
        	    }
        		fenetreAide.setVisible(true);
        	}
     
        }
    mais le résultat n'est pas à la hauteur en effet:
    1)Toute ma page html ne rentre pas dans ma frame, il y a une partie qui est coupé(peut etre qu'avec une scrollbar sa irai)
    2)Les différences de police ne sont pas appliqué
    3)Les liens Hypertexte ne sont pas fonctionnel

    point positif:L'image de fond est présente et la couleur y est

    Question:
    Es ce que c'est la bonne méthode??Ou c'est la méthode barbare??
    Comment remédier aux problemes??

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

Discussions similaires

  1. ouvrir fichier par un inputbox
    Par lavalois dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2008, 08h15
  2. [HTML] Ouvrir fichier par le biais d'un code html
    Par erox44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/05/2007, 09h33
  3. ouvrir un fichier par chemin unc
    Par MrEddy dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/01/2006, 11h45
  4. [VB.NET] Ouvrir fichier dans appli par double-clic dessus
    Par vynce dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/03/2005, 17h43
  5. [Système] Ouvrir fichier externe avec prog par défaut de l'OS
    Par Pill_S dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 30/05/2004, 12h54

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