无法在WebView控件上显示网页

时间:2012-04-25 04:34:07

标签: javascript javafx-2

我尝试按照此处描述的说明:http://docs.oracle.com/javafx/2.0/webview/jfxpub-webview.htm在javafx 2.1上显示网页,但网页不显示虽然我已经使用javafx-ant工具签署了我的应用程序(此链接提到了签署javafx申请How can I display a javascript webpage inside a WebView in JavaFx 2.0 in Browser)。

我可以在浏览器上运行javafx时查看网页,但在将应用程序作为java独立应用程序运行时无法查看它。

以下是代码:

浏览器控制:

public class Browser extends Region {

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    public Browser() {
        //apply the styles
        getStyleClass().add("browser");
        // load the web page
        webEngine.load("http://www.google.com");
        //add the web view to the scene
        getChildren().add(browser);


    }
    //...
}

显示它:

  Stage stage = new Stage();

    stage.setTitle("Web View");
    Scene scene = new Scene(new Browser(),590,400, Color.web("#666970"));
    stage.setScene(scene);
    scene.getStylesheets().add("/com/sai/javafx/calendar/styles/BrowserToolbar.css");  

  stage.show();

任何想法都会受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

以下是一个示例应用:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewSample extends Application {
  public static void main(String[] args) { launch(args); }
  @Override public void start(final Stage primaryStage) {
    final WebView webView = new WebView(); 
    webView.getEngine().load("http://docs.oracle.com/javafx/");
    primaryStage.setScene(new Scene(webView));
    primaryStage.show();
  }
}

以下是浏览器中的内容,内部滚动窗口是JavaFX WebView呈现的浏览器,外部文本是嵌入JavaFX WebView的html页面。

WebView in Browser Sample Image

要运行它,我使用了NetBeans nightly buildJavaFX 2.2b4JDK7u6ea,Win7,IE9。

NetBeans中的步骤是:

  1. 新项目| JavaFX | JavaFX应用程序
  2. 使用示例应用程序代码创建Java文件。
  3. 创建项目后,右键单击Project |属性
    • 构建|部署|选中“请求无限制访问”
    • 运行|检查电台“在浏览器中”运行
    • 确定接受财产变更
  4. 按F6在浏览器中运行该应用程序。
  5. 接受任何安全对话框警告。
  6. 等待几秒钟以加载WebView。

答案 1 :(得分:0)

据我所知,解决我问题的唯一方法是在本地加载.html文件(无法从其他域加载网页,此html文件不得引用任何外部链接)

public Browser() {
   //apply the styles
   getStyleClass().add("browser");        
   // load the web page
   final URL urlHello = Browser.class.getResource("sample.html");
   webEngine.load(urlHello.toExternalForm());
}

显示它:

Stage stage = new Stage();

stage.setTitle("Web View");
Scene scene = new Scene(new Browser(),590,400, Color.web("#666970"));
stage.setScene(scene);
scene.getStylesheets().add("/com/sai/javafx/calendar/styles/BrowserToolbar.css");  

stage.show();