public void start(Stage primaryStage) throws Exception {
final WebView view = new WebView();
Scene scene = new Scene(view, 310, 310);
primaryStage.setScene(scene);
final WebEngine webEngine = view.getEngine();
webEngine.load(this.getClass().getResource("web/index.html")
.toExternalForm());
primaryStage.show();
// 方式1. 监听webEngine加载进度,可能页面加载不完整
webEngine.getLoadWorker().stateProperty()
.addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue<? extends State> ov,
State oldState, State newState) {
if (newState == State.SUCCEEDED) {
snapshot(view);
}
}
});
// 方式2. 使用Transition设定延时
PauseTransition ptr = new PauseTransition(Duration.seconds(3));
ptr.setOnFinished(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
snapshot(view);
}
});
ptr.play();
//方式3. 使用Task设定延时
Task<String> task = new Task<String>() {
@Override
protected String call() throws Exception {
Thread.sleep(5000);
return null;
}
};
task.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent event) {
snapshot(view);
}
});
new Thread(task).start();
// 方式4. 自己实现多线程调用,较麻烦
new Thread(){
public void run() {
try {
Thread.sleep(7000);//该命令不可直接在Fx用户线程执行,否则会导致前台的渲染线程暂停,页面不会被加载
Platform.runLater(new Runnable() {
@Override
public void run() {
snapshot(view);//在后台线程中不可以直接操作UI,需要借助runLater
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
public void snapshot(Node view) {
Image image = view.snapshot(null, null);
try {
ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png",
new File("f:\\" + System.currentTimeMillis() + ".png"));
} catch (IOException e) {
e.printStackTrace();
}
}
相关推荐
JavaFXWebViewExtension JavaFX Webview的扩展,可处理html文件和pdf的视图JavaFX WebView无法处理PDF文件。 该组件为Webview和pdf查看器创建包装。 使用此组件,可以无缝查看Web和pdf文件。 如何使用WebView ...
在本文中,我们将深入探讨如何使用JavaFX框架开发一个基于crawler4j的图形化网络爬虫,以及如何自定义XPath表达式来提取网页内容,并将其存储到MySQL数据库中。这是一项涉及多方面技术的综合性任务,包括前端界面...
lein-javafx-webview-example 使用Leiningen构建的Java + Webview的示例注意:此构建需要JDK 1.8,该JDK 1.8具有必需的JavaFX和Webview支持汇编lein javac用法运行默认示例lein run运行一个具体的例子lein run -m ...
2. 初始化Webview:在Activity的onCreate()方法中找到Webview实例,并设置相关属性,如设置WebViewClient和WebChromeClient,加载网页。 ```java WebView webView = findViewById(R.id.webView); webView....
Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...
通过调用WebView的`evaluateJavaScript()`方法,JavaFX应用可以执行CodeMirror的初始化脚本,设置编辑器的属性,如语言类型、主题、快捷键等。 使用JavaFX Codemirror编辑器的步骤大致如下: 1. 引入JavaFX库和Code...
6. 性能优化:考虑到PDF文件可能会很大,可能需要进行一些性能优化,如预加载页面,或者使用虚拟化技术只渲染可视区域的页面。 7. 错误处理:添加适当的错误处理代码,处理如文件不存在、无法解析PDF等异常情况。 ...
在对应的Activity(如MainActivity.java)中,我们可以通过以下步骤初始化并设置WebView: 1. 获取WebView实例: ```java WebView webView = findViewById(R.id.webView); ``` 2. 启用JavaScript支持: ```java ...
在本文中,我们将深入探讨如何将搜索和替换功能集成到使用 JavaFX 的 webView 组件中的 CodeMirror 编辑器。CodeMirror 是一个流行的开源代码编辑器,它可以在网页上提供丰富的代码编辑体验,而 JavaFX 的 webView ...
测试嵌入在 WebView 中的 JavaFX 和 HTML5 之间的拖放 我正在研究 JavaFX WebView 中运行的 JavaFX 和 HTML5 代码之间的拖放可能性。 目的是通过 D'n'D Person 对象进行传输。 Person 是一个包含 2 个字符串属性...
图片爬取 目前支持的图片格式有 bmp,gif,jpeg,png,tiff,pcx,tga,svg,pic 媒体爬取 目前支持的媒体格式有 avi,mov,swf,asf,navi,wmv,3gp,mkv,flv,rmvb,webm,mpg,mp4,qsv,mpeg,mp3,aac,ogg...
- Web应用:JavaFX也可以与JavaFX WebView组件结合,嵌入HTML5内容,实现混合式应用开发。 7. 学习路径 - 先学习Java基础知识,包括面向对象编程、异常处理、集合框架等。 - 了解JavaFX的基础概念,如场景图、...
对于Java开发者,理解JavaFX的模块化、MVC(模型-视图-控制器)架构以及如何将JavaFX与Spring或其它后端框架集成,都是提高项目开发效率的关键。 压缩包中的“FXWEBBrowsertwo”可能是项目的源代码或编译后的二进制...
概述 在 JavaFX 客户端应用程序中使用 WebSocket 客户端的示例。 该项目使用。 描述 创建一个场景,用户可以在其中输入他们的姓名,然后向 WebSocket 服务器提交请求,该服务器将响应Hello ... 示例截图 构建要
该库实际上是Mozilla的 javascript库的javaFX包装器,但是使用此库,您不必处理任何javascript代码,因此您可以使用java对象在javaFX中查看pdf文档。 如何获得? 可以通过发布版本: 玛文 < id>jitpack.io ...
"Pro JavaFX"是一本权威的书籍,深入探讨了JavaFX的各种高级特性,如3D图形、动画、媒体播放、Web视图(WebView)以及图表组件。这本书还涵盖了JavaFX的模块化系统,这对于大型应用的组织和部署至关重要。通过阅读...
JavaFX是Oracle公司推出的用于构建桌面、移动以及云端应用程序的现代Java GUI框架,它在Java 8中作为标准库的一部分,但在Java 9之后被移出JDK,转为独立的模块。本主题关注的是JavaFX 11的jar包,这是一个经过验证...
6. **Web引擎**:内置的WebView组件可以嵌入HTML内容,使得JavaFX应用可以与Web技术结合。 **Eclipse集成JavaFX:** Eclipse是一款广泛使用的Java集成开发环境(IDE)。要使用JavaFX开发项目,需要进行以下步骤: 1...
CSS,以下简称FXSS),即通过将不同样式属性(背景图片、文字颜色等)的属性值写到一个文件中,再由JavaFX载入生效从而改变默认的界面样式。其语法与Web开发中的CSS类似,想要了解CSS语言的同学,可以参考这个链接:...
Learn the Fundamentals of JavaFX 8 from Programming Guru Herb Schildt Introducing JavaFX 8 Programming provides a fast-paced, practical introduction to JavaFX, Java’s next-generation GUI programming...