# Applet - Hilfedateien im Browser öffnen / eine Webseite laden



## helene (22. Nov 2010)

Hallo,

in meinem erstellen Applet sollte über eine Menüzeile eine Hilfedatei aufgerufen werden. In meiner bisher erstellten Applikation funktioniert dies über die Klasse 
java.awt.Desktop
Desktop.browse.("Hilfedatei/index.html")

In meinem signierten Applet funktioniert dies leider nicht. Wie kann ich dies anders lösen?


----------



## L-ectron-X (22. Nov 2010)

Ganz ohne signieren mit 
	
	
	
	





```
getAppletContext().showDocument(...)
```

Beispiel: http://www.java-forum.org/deployment/28009-mouseentered-bild-applet.html#post179043
Dich dürften die Zeilen 124 - 131 interessieren.


----------



## helene (25. Nov 2010)

Schon mal danke für den Tip. Ich bekomme aber leider eine java.lang.NullPointerException. Woran mag das liegen?


----------



## L-ectron-X (25. Nov 2010)

An einer nicht initialisierten Variable.
Zeig mal die komplette Fehlermeldung.


----------



## helene (25. Nov 2010)

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
	at java.applet.Applet.getAppletContext(Unknown Source)
	at frame.GUIJFrame$14.actionPerformed(GUIJFrame.java:630)
	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.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(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)

um die Hilfedatei aufzurufen habe ich 

[JAVA=42]
getAppletContext().showDocument(new URL("/Hilfethemen/index.html"));
[/code]

eingefügt.


----------



## L-ectron-X (25. Nov 2010)

Das Problem steht eigentlich schon da:


> at java.applet.Applet.getAppletContext(Unknown Source)


In deinem Fall erwartet die Methode eine absolute URL zu einer Resource. Also bspw. so was: http://www.domain.com/folder/file.html

```
/* Webseite laden */
  private void showWebDocument(String url) {
    try {
      getAppletContext().showDocument(new URL(url), "_blank"); //String url = "http://www.domain.com/folder/file.html";
    }
    catch(MalformedURLException murle) {
      System.out.println("URL fehlerhaft oder nicht erreichbar!");
    }
  }
```

Oder du aber du gibst von der CodeBase des Applets ausgehend den relativen Pfad zur Datei an.
Also so:

```
/* Webseite laden */
  private void showWebDocument(String url) {
    try {
      getAppletContext().showDocument(new URL(getCodeBase(), url), "_blank"); //String url = "folder/file.html";
    }
    catch(MalformedURLException murle) {
      System.out.println("URL fehlerhaft oder nicht erreichbar!");
    }
  }
```
Das Applet liegt hier quasi im Wurzelverzeichnis des Webspaces.


----------



## helene (25. Nov 2010)

Hat geklappt. Vielen herzlichen Dank.


----------

