# Swing JBrowser und setHTMLContent()



## mariechen11 (27. Jul 2011)

Hi,

ich habe folgende Klasse die einen JWebBrowser implementiert:


```
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JPanel;

import model.HTMLCode;
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;


public class SwingBrowser extends JPanel {

  public SwingBrowser(String url) {
    
   super(new BorderLayout());

    HTMLCode code = new HTMLCode();
    url=code.gethtmlCode();
	 
    NativeInterface.open();
	
    JPanel webBrowserPanel = new JPanel(new BorderLayout());
    webBrowserPanel.setPreferredSize(new Dimension(1000,700));
    
    final JWebBrowser webBrowser = new JWebBrowser();
    
    webBrowser.setButtonBarVisible(false);
    webBrowser.setLocationBarVisible(false);
    webBrowser.setMenuBarVisible(false);
   
    webBrowser.setHTMLContent(url);
    
    //webBrowser.navigate(url);
    
    webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
    add(webBrowserPanel, BorderLayout.CENTER);
   
  }

}
```


Jetzt möchte ich folgende Website darstellen:
Google Maps JavaScript API v3 Example: Directions Simple

also über die setHTMLContent()-Methode

Also habe ich mir mit rechtsklick auf die Seite den Quelltext geholt.
Um diesen als String zu übergeben habe ich mal diese Klasse erstellt:


```
public class HTMLCode {

	String htmlCode;
	
	public HTMLCode(){
		
	}
	
	public String gethtmlCode(){
		
htmlCode="<!DOCTYPE html>"
		+"<html>"
		+"<head>"
		+"<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\"/>"
		+"<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"/>"
		+"<title>Google Maps JavaScript API v3 Example: Directions Simple</title>"
		+"<link href=\"http://code.google.com/apis/maps/documentation/javascript/examples/default.css\" rel=\"stylesheet\" type=\"text/css\" />"
		+"<script type=\"text/javascript\" src=\"http://maps.googleapis.com/maps/api/js?sensor=false\"></script>"
		+"<script type=\"text/javascript\">"
		  +" var directionDisplay;"
		  +" var directionsService = new google.maps.DirectionsService();"
		  +" var map;"
		  +" function initialize() {"
		    +" directionsDisplay = new google.maps.DirectionsRenderer();"
		    +" var chicago = new google.maps.LatLng(41.850033, -87.6500523);"
		    +" var myOptions = {"
		      +" zoom:7,"
		      +" mapTypeId: google.maps.MapTypeId.ROADMAP,"
		      +" center: chicago"
		    +" }"
		    +" map = new google.maps.Map(document.getElementById(\"map_canvas\"), myOptions);"
		    +" directionsDisplay.setMap(map);"
		  +"}" 
		  +" function calcRoute() {"
		    +" var start = document.getElementById(\"start\").value;"
		    +" var end = document.getElementById(\"end\").value;"
		    +" var request = {"
		        +" origin:start," 
		        +" destination:end,"
		        +" travelMode: google.maps.DirectionsTravelMode.DRIVING"
		    +" };"
		    +" directionsService.route(request, function(response, status) {"
		      +" if (status == google.maps.DirectionsStatus.OK) {"
		        +" directionsDisplay.setDirections(response);"
		      +"}"
		    +"});"
		  +"}"
		+"</script>"
		+"</head>"
		+"<body onload=\"initialize()\">"
		+"<div>"
		+"<b>Start: </b>"
		+"<select id=\"start\" onchange=\"calcRoute();\">"
		  +"<option value=\"chicago, il\">Chicago</option>"
		  +"<option value=\"st louis, mo\">St Louis</option>"
		  +"<option value=\"joplin, mo\">Joplin, MO</option>"
		  +"<option value=\"oklahoma city, ok\">Oklahoma City</option>"
		  +"<option value=\"amarillo, tx\">Amarillo</option>"
		  +"<option value=\"gallup, nm\">Gallup, NM</option>"
		  +"<option value=\"flagstaff, az\">Flagstaff, AZ</option>"
		  +"<option value=\"winona, az\">Winona</option>"
		  +"<option value=\"kingman, az\">Kingman</option>"
		  +"<option value=\"barstow, ca\">Barstow</option>"
		  +"<option value=\"san bernardino, ca\">San Bernardino</option>"
		  +"<option value=\"los angeles, ca\">Los Angeles</option>"
		+"</select>"
		+"<b>End: </b>"
		+"<select id=\"end\" onchange=\"calcRoute();\">"
		  +"<option value=\"chicago, il\">Chicago</option>"
		  +"<option value=\"st louis, mo\">St Louis</option>"
		  +"<option value=\"joplin, mo\">Joplin, MO</option>"
		  +"<option value=\"oklahoma city, ok\">Oklahoma City</option>"
		  +"<option value=\"amarillo, tx\">Amarillo</option>"
		  +"<option value=\"gallup, nm\">Gallup, NM</option>"
		  +"<option value=\"flagstaff, az\">Flagstaff, AZ</option>"
		  +"<option value=\"winona, az\">Winona</option>"
		  +"<option value=\"kingman, az\">Kingman</option>"
		  +"<option value=\"barstow, ca\">Barstow</option>"
		  +"<option value=\"san bernardino, ca\">San Bernardino</option>"
		  +"<option value=\"los angeles, ca\">Los Angeles</option>"
		+"</select>"
		+"</div>"
		+"<div id=\"map_canvas\" style=\"top:30px;\"></div>"
		+"</body>"
		+"</html>";


		
		return htmlCode;
	}
	
}
```

allerdings wird mir die Karte nicht angezeigt, sondern nur die beiden Auswahlfelder. Weiß jemand wieso?


----------



## mariechen11 (27. Jul 2011)

also wenn ich den Code als html Datei abspeichere und mit folgender Methode ausführen lasse funktioniert alles prima:


```
public static void main(String[] args) throws IOException{
		String relativeURL = "view/html2.html";
		
        try {
            System.out.println(relativeURL);
            URL absoluteURL = ClassLoader.getSystemResource(relativeURL);
            System.out.println(absoluteURL);
            Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + absoluteURL);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
```

liegt es also an dem JWebBrowser das es nicht klappt?
(ich hätte die Seite halt gerne in meiner JavaAnwendung angezeigt, also in nem JPanel und nicht in einem externen Browser, daher der JWebBrowser)


----------



## mariechen11 (27. Jul 2011)

ähm, ich hab den Fehler nicht gefunden. Bin jetzt allerdings auch einen anderen Weg gegangen, von daher hat sich das Thema erledigt


----------

