3

デスクトップアプリケーションでJavaFX2.2を使用しており、WebViewコンポーネントを実装しました。デスクトップアプリケーションからwww.google.comをロードしました。問題は、ページが読み込まれる前に.gif画像を表示したいということです。これで、白い画面が表示され、次にページが表示されます。これを行う方法はありますか?前もって感謝します。

4

1 に答える 1

8

読み込みの準備が整うまでWebEngine#loadWorker.stateProperty、上記のアニメーション gifを聞いて表示できます。WebView

さらに良いことに、私見は、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();
于 2012-12-30T20:39:39.800 に答える