package javafx_webview;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Region;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/**
*
* @web http://java-buddy.blogspot.com/
*/
public class JavaFX_Browser extends Application {
private Scene scene;
MyBrowser myBrowser;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("java-buddy.blogspot.com");
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 640, 480);
primaryStage.setScene(scene);
primaryStage.show();
}
class MyBrowser extends Region{
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
public MyBrowser(){
webEngine.loadContent(genHtml());
getChildren().add(webView);
}
}
private String genHtml(){
StringBuilder tHtml = new StringBuilder();
tHtml.append("<DOCTYPE html>" + "\n");
tHtml.append("<html lang='en-US'>" + "\n");
tHtml.append("<head>" + "\n");
tHtml.append("<meta charset=utf-8>" + "\n");
tHtml.append("<title>Hello Java-Buddy!</title>" + "\n");
tHtml.append("</head>" + "\n");
tHtml.append("<body>" + "\n");
tHtml.append("<p>Hello <a href='http://java-buddy.blogspot.com/'>Java-Buddy</a></p>" + "\n");
tHtml.append("<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxGfYYk9MPmsy4Fb5yBONPauX59KlswhZvZL_XoWgvPMp2SwHsLorHIo4aWZJsUc9oynuzwstK5MfzjmjmNevnJFjJt1HIhcl-iRH3dnK2twWSeX6MdjSbAz4nyMzaNQE1p-Pajqfg3KKN/s150/duke_44x80.png'/>" + "\n");
tHtml.append("</body>" + "\n");
tHtml.append("</html>" + "\n");
return tHtml.toString();
}
}
Related:
- Load local html in JavaFX WebView
- Add toolbar in our browser
That really helped me to kick start my solution. When I tried to insert jquery mobile css and js file it seems that it stops rendering the hrml. Do you have any suggestion? We have also post to Javafx forums but no luck.
ReplyDeleteInstead of setting the default size of 640x480, is there a way with the WebView to get the preferred size of the content? The WebView class has a prefWidth() and prefHeight() methods but they only contain the default size of the component (800x600). I want to pack my window to fit the required dimensions of the html to limit whitespace because I'm not displaying a website, just html-formatted text (ie. [html][body]Hello, World![/body][/html]
ReplyDelete