我在桌面应用程序中使用JavaFX 2.2,并且我实现了WebView组件.我从桌面应用程序中加载了www.google.com.问题是我希望在页面加载之前显示.gif图像.现在,它显示一个白色屏幕,然后显示页面.有办法做到这一点吗?提前致谢.
您可以收听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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4564 次 |
| 最近记录: |