2010-10-08 6 views
3

J'ai des difficultés à trouver un tutoriel qui permet à un JMenuItem étiqueté ("Contenu de l'aide") d'ouvrir une page html qui affiche le contenu de l'aide. La page html sera stockée sur la machine locale, par exemple C: \ help. J'ai créé le programme d'écoute d'action suivant qui, lorsqu'il est cliqué, affiche une chaîne. Ceci est seulement à des fins de test pour montrer que mon ActionListener fonctionne.JMenu Aide pour ouvrir la page Html sur la machine locale

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) { 
      // TODO add your handling code here: 
      JOptionPane.showMessageDialog(null, "Help File Popup"); 
     } 

En résumé, comment pourrais-je remplacer:

JOptionPane.showMessageDialog(null, "Help File Popup"); 

Alors que lorsque jMenuItem3 est pressé, une page html est chargé dans le navigateur par défaut. Merci d'avance!

Répondre

1

Si vous voulez ouvrir le navigateur par défaut et afficher la page html, vous pouvez utiliser la bibliothèque jdic. Ou vous pouvez utiliser un composant swing intégré, JEditorPane qui est capable d'afficher html, même si je ne suis pas sûr si cela le rend correct.

Voici un code (de tutoriel swing):

JEditorPane editorPane = new JEditorPane(); 
editorPane.setEditable(false); 
java.net.URL helpURL = TextSamplerDemo.class.getResource(
          "TextSamplerDemoHelp.html"); 
if (helpURL != null) { 
try { 
    editorPane.setPage(helpURL); 
} catch (IOException e) { 
    System.err.println("Attempted to read a bad URL: " + helpURL); 
} 
} else { 
System.err.println("Couldn't find file: TextSamplerDemoHelp.html"); 
} 

//Put the editor pane in a scroll pane. 
JScrollPane editorScrollPane = new JScrollPane(editorPane); 
editorScrollPane.setVerticalScrollBarPolicy(
      JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
editorScrollPane.setPreferredSize(new Dimension(250, 145)); 
editorScrollPane.setMinimumSize(new Dimension(10, 10)); 

En utilisant jdic, vous pouvez faire quelque chose comme ceci:

import org.jdesktop.jdic.browser.*; 
Desktop.browse(new URL(inputUrl)); // open URL in default browser 
+0

Si le fichier est local sur votre disque dur, vous devez spécifier l'URL en utilisant le fichier: /// {chemin d'accès au fichier} – virgium03

+0

Désolé, je ne comprends pas ce que vous voulez dire par: file: /// { chemin vers le fichier} pourriez-vous s'il vous plaît le mettre dans le contexte de C: test \ helloworld.html –

+0

oui, votre URL sera: nouvelle URL ("fichier: /// C: \\ test \\ helloworld.html") – virgium03

1

Jetez un oeil à java.awt.Desktop.

1

Merci les gars pour toute l'aide! Pour l'auditeur d'action, je suis actuellement implémentés le code suivant:

public void actionPerformed(ActionEvent a) { 
     // TODO add your handling code here: 
     try{ 
      String url = "http://www.google.com"; 
      java.awt.Desktop.getDesktop().browse(java.net.URI.create(url)); 
      } 
      catch (java.io.IOException e) { 
       System.out.println(e.getMessage()); 
      } 
    } 

La prochaine chose à faire est de créer des messages d'erreur si le navigateur par défaut ne peut pas être sélectionné.

Questions connexes