`
chan.d
  • 浏览: 32900 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVAFX webview 图片化 截图

 
阅读更多

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的视图

    JavaFXWebViewExtension JavaFX Webview的扩展,可处理html文件和pdf的视图JavaFX WebView无法处理PDF文件。 该组件为Webview和pdf查看器创建包装。 使用此组件,可以无缝查看Web和pdf文件。 如何使用WebView ...

    用JavaFX开发基于crawler4j的图形化的网络爬虫

    在本文中,我们将深入探讨如何使用JavaFX框架开发一个基于crawler4j的图形化网络爬虫,以及如何自定义XPath表达式来提取网页内容,并将其存储到MySQL数据库中。这是一项涉及多方面技术的综合性任务,包括前端界面...

    lein-javafx-webview-example:用Leiningen构建的JavaFX Webveiw示例

    lein-javafx-webview-example 使用Leiningen构建的Java + Webview的示例注意:此构建需要JDK 1.8,该JDK 1.8具有必需的JavaFX和Webview支持汇编lein javac用法运行默认示例lein run运行一个具体的例子lein run -m ...

    webview嵌入浏览器

    2. 初始化Webview:在Activity的onCreate()方法中找到Webview实例,并设置相关属性,如设置WebViewClient和WebChromeClient,加载网页。 ```java WebView webView = findViewById(R.id.webView); webView....

    实例详解Android Webview拦截ajax请求

    Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...

    fxcodemirror:JavaFX WebView编辑器

    通过调用WebView的`evaluateJavaScript()`方法,JavaFX应用可以执行CodeMirror的初始化脚本,设置编辑器的属性,如语言类型、主题、快捷键等。 使用JavaFX Codemirror编辑器的步骤大致如下: 1. 引入JavaFX库和Code...

    webview控件使用(java代码和js的互相调用)

    在对应的Activity(如MainActivity.java)中,我们可以通过以下步骤初始化并设置WebView: 1. 获取WebView实例: ```java WebView webView = findViewById(R.id.webView); ``` 2. 启用JavaScript支持: ```java ...

    SearchButtonCodeMirrorJavaFX:将搜索替换导航栏添加到 JavaFX webView 中的 CodeMirror 编辑器

    在本文中,我们将深入探讨如何将搜索和替换功能集成到使用 JavaFX 的 webView 组件中的 CodeMirror 编辑器。CodeMirror 是一个流行的开源代码编辑器,它可以在网页上提供丰富的代码编辑体验,而 JavaFX 的 webView ...

    dnd_jfx-js:测试嵌入在 WebView 中的 JavaFX 和 HTML5 之间的拖放

    测试嵌入在 WebView 中的 JavaFX 和 HTML5 之间的拖放 我正在研究 JavaFX WebView 中运行的 JavaFX 和 HTML5 代码之间的拖放可能性。 目的是通过 D'n'D Person 对象进行传输。 Person 是一个包含 2 个字符串属性...

    JavaFX开发基于crawler4j的图形化的网络爬虫

    图片爬取 目前支持的图片格式有 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...

    javafx整理资料

    - Web应用:JavaFX也可以与JavaFX WebView组件结合,嵌入HTML5内容,实现混合式应用开发。 7. 学习路径 - 先学习Java基础知识,包括面向对象编程、异常处理、集合框架等。 - 了解JavaFX的基础概念,如场景图、...

    javaFx开发的炫酷浏览器

    对于Java开发者,理解JavaFX的模块化、MVC(模型-视图-控制器)架构以及如何将JavaFX与Spring或其它后端框架集成,都是提高项目开发效率的关键。 压缩包中的“FXWEBBrowsertwo”可能是项目的源代码或编译后的二进制...

    javafx-websocket-test:从 JavaFX 客户端使用 WebSocket 的示例项目

    概述 在 JavaFX 客户端应用程序中使用 WebSocket 客户端的示例。 该项目使用。 描述 创建一个场景,用户可以在其中输入他们的姓名,然后向 WebSocket 服务器提交请求,该服务器将响应Hello ... 示例截图 构建要

    PDFViewerFX:适用于您的javaFX应用程序的pdf查看器库

    该库实际上是Mozilla的 javascript库的javaFX包装器,但是使用此库,您不必处理任何javascript代码,因此您可以使用java对象在javaFX中查看pdf文档。 如何获得? 可以通过发布版本: 玛文 &lt; id&gt;jitpack.io ...

    javafx资料

    "Pro JavaFX"是一本权威的书籍,深入探讨了JavaFX的各种高级特性,如3D图形、动画、媒体播放、Web视图(WebView)以及图表组件。这本书还涵盖了JavaFX的模块化系统,这对于大型应用的组织和部署至关重要。通过阅读...

    javafx 11 jar包,亲测可用

    JavaFX是Oracle公司推出的用于构建桌面、移动以及云端应用程序的现代Java GUI框架,它在Java 8中作为标准库的一部分,但在Java 9之后被移出JDK,转为独立的模块。本主题关注的是JavaFX 11的jar包,这是一个经过验证...

    javafx11win64.zip

    6. **Web引擎**:内置的WebView组件可以嵌入HTML内容,使得JavaFX应用可以与Web技术结合。 **Eclipse集成JavaFX:** Eclipse是一款广泛使用的Java集成开发环境(IDE)。要使用JavaFX开发项目,需要进行以下步骤: 1...

    百度地图开发java源码-iGoBang:JavaFX开发的五子棋

    CSS,以下简称FXSS),即通过将不同样式属性(背景图片、文字颜色等)的属性值写到一个文件中,再由JavaFX载入生效从而改变默认的界面样式。其语法与Web开发中的CSS类似,想要了解CSS语言的同学,可以参考这个链接:...

    Introducing.JavaFX.8.Programming.0071842551.epub

    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...

    基于JavaFx的简单浏览器实现

    2. **WebView**: WebView是JavaFX提供的一种控件,用于显示HTML内容。它是浏览器的核心,通过WebEngine对象加载和解析网页。我们需要创建一个WebView实例并将其添加到Scene中。 3. **WebEngine**: WebEngine是与...

Global site tag (gtag.js) - Google Analytics