3
我在桌面應用程序中使用JavaFX 2.2,並且實現了WebView組件。從桌面應用程序中我加載了www.google.com。問題是我希望在加載頁面之前顯示一個.gif圖像。現在,它顯示一個白色屏幕,然後顯示頁面。 有沒有辦法做到這一點?提前致謝。在JavaFX WebView加載頁面之前顯示加載圖像
我在桌面應用程序中使用JavaFX 2.2,並且實現了WebView組件。從桌面應用程序中我加載了www.google.com。問題是我希望在加載頁面之前顯示一個.gif圖像。現在,它顯示一個白色屏幕,然後顯示頁面。 有沒有辦法做到這一點?提前致謝。在JavaFX WebView加載頁面之前顯示加載圖像
您可以收聽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();