java - 在 JavaFX WebView 加载页面之前显示加载图像

标签 java javafx-2

我在桌面应用程序中使用 JavaFX 2.2,并且我已经实现了 WebView 组件。我从桌面应用程序加载了 www.google.com。问题是我希望在页面加载之前显示 .gif 图像。现在,它显示一个白色屏幕,然后是页面。 有没有办法做到这一点?提前致谢。

最佳答案

您可以收听 WebEngine#loadWorker.stateProperty 并在 WebView 上方显示动画 gif,直到加载准备就绪。

恕我直言,更好的方法是听取 WebEngine#loadWorker.progressProperty 并向用户显示真实的加载进度。

    StackPane root = new StackPane();
    final ProgressBar progress = new ProgressBar(); // or you can use ImageView with animated gif instead

    WebView webView = new WebView();
    root.getChildren().addAll(webView, progress);
    final WebEngine engine = webView.getEngine();
    engine.load("http://stackoverflow.com/questions/14094264/display-loading-image-before-javafx-webview-loads-the-page");

    // updating progress bar using binding
    progress.progressProperty().bind(engine.getLoadWorker().progressProperty());

    engine.getLoadWorker().stateProperty().addListener(
            new ChangeListener<State>() {
                @Override
                public void changed(ObservableValue ov, State oldState, State newState) {
                    if (newState == State.SUCCEEDED) {
                         // hide progress bar then page is ready
                         progress.setVisible(false);
                    }
                }
            });


    Scene scene = new Scene(root, 500, 500);
    primaryStage.setScene(scene);
    primaryStage.show();

关于java - 在 JavaFX WebView 加载页面之前显示加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14094264/

相关文章:

java - 改变 rgb 位的 alpha

java - 在自定义 Eclipse 文本编辑器插件中打开文件之前处理文件

java - 如何在 JavaFX Scene Builder 中编辑 CubicCurve?

javafx-2 - 如何在 JavaFX Canvas 上绘制旋转的图像?

JavaFX 2.0 + FXML - 奇怪的查找行为

Java 在计时器运行前终止

java - 从 <String, Object> 转换为 <String, String> 时无法从 map 获取所有记录

java - 了解了 Dao 模式,它可以用于从缓存中检索数据吗?

java - javafx 中的文本区域有问题吗?

java - 我们如何使用 Scene builder 2 来定位 java 7?