javafx 轻量级模式BrowserType.LIGHTWEIGHT渲染很慢

快速创建基于JavaFX的桌面App 快速创建基于JavaFX的桌面App 快速创建一个基于JavaFX的桌面APP,用于模拟一个简单的客户端POST请求; 项目基于Maven创建,使用的IDE是Intellij IDEA,项目编码全部为UTF-8; JDK版本为1.8。 制作目标 简单说明一下想制作的APP的样子: 实现一个APP,存在两个视图:首页和编辑页。首页简单的展示一些欢迎话语,编辑页负 阅读详情

前情提要

  1. 浏览器插件从自带的WebView 改成 JxBrowser 提供的 BrowserView
  2. 使用primaryStage.initStyle(StageStyle.TRANSPARENT);模式去掉了系统自带的标题栏 , 此时如果再使用 BrowserType.HEAVYWEIGHT 重量级模式, 就无法拖拽, 所以必须使用 轻量级模式 BrowserType.LIGHTWEIGHT, 但是这就导致渲染卡顿, 没有重量级模式 流畅.

重点来了

  1. 使用 fxml 配置 是默认 重量级模式的:
  <?import com.teamdev.jxbrowser.chromium.javafx.BrowserView?>
  <?import javafx.scene.layout.VBox?>
  <fx:root type="javafx.scene.layout.VBox" maxHeight="-Infinity" maxWidth="-Infinity" 
        minHeight="-Infinity" minWidth="-Infinity"
        prefHeight="900.0" prefWidth="1200.0"  xmlns:fx="http://javafx.com/fxml">
       <!--使用这种方式生成的BrowserView默认的BrowserType是重量级的,会覆盖之前的插件,导致无法拖拽-->
       <!--改用代码中新建对象的方式,可以初始化为轻量级的,就可以拖拽-->
      <BrowserView fx:id="contentWeb" prefHeight="900.0" prefWidth="1200.0"></BrowserView>
</fx:root>
  1. 所以需要改成代码生成的形式, 指定为轻量级模式.
       BrowserView contentWeb = new BrowserView(new Browser(BrowserType.LIGHTWEIGHT));
       contentWeb.setPrefWidth(1200.0);
       contentWeb.setPrefHeight(900.0);
       root.getChildren().add(contentWeb);

这下可以拖拽了, 但是渲染慢是个大问题
该怎么办呢?

王牌来了

官方提供了加速的功能: 添加一下这句即可:

        // 加速轻量级Browser
        BrowserPreferences.setChromiumSwitches(
                "--disable-gpu",
                "--disable-gpu-compositing",
                "--enable-begin-frame-scheduling",
                "--software-rendering-fps=60"
        );

在这里插入图片描述

轻量级或重量级-Lightweight or Heavyweight 要点:重量级是CPU加速的,速度更快,内存更少,设置方式:BrowserType.LIGHTWEIGHT JxBrowser支持两种渲染模式:轻量级和重量级。 默认情况下,启用重量级渲染模式,因此当您使用以下代码创建Browser实例时,它会创建一个配置为使用重量级渲染模式的新Browser实例: Browser browser = new Browser(); 要使用指定的呈现模式创建新的Browser实例,请使用以下方法: // Creates Browser instance wit. 阅读详情

相关推荐

Java编程Swing嵌入浏览器技术方案综述:JCEF、JEditorPane、DJNativeSwing与JavaFX WebView的应用实例在Java中使用

内容概要:本文介绍了在Java中使用Swing嵌入浏览器的多种技术方案及其应用实例。首先提到的是JCEF框架,它能够将Chromium浏览器内核嵌入Java应用程序中,通过创建CefApp实例和CefBrowser类来实现浏览器窗口的创建与网页加载。其次是JEditorPane组件,虽然它对复杂网页的支持有限,但能很好地处理简单的HTML页面,并可通过注册监听器实现页面跳转。再者是DJNativeSwing-SWT组件,它允许开发者选择不同的浏览器内核(如WEBKIT),并通过实例化浏览器对象完成嵌入操作。最后是JavaFX WebView结合Swing的方式,这种方式利用了JavaFX中的WebView组件强大的HTML5、CSS3和JavaScript支持能力,通过JFXPanel将WebView嵌入到Swing应用中,实现了良好的交互体验。 适合人群:有一定Java编程基础,尤其是熟悉Swing框架的开发者,包括但不限于初级和中级程序员。 使用场景及目标:①需要在Java桌面应用程序中集成浏览器功能的开发人员;②希望通过简单配置即可嵌入浏览器并加载特定网页的快速开发需求;③追求较好的HTML5、CSS3和JavaScript支持效果的应用场景;④学习不同嵌入方式的特点,以便根据实际需求选择最合适的方案。 阅读建议:由于文中涉及多个技术方案,每个方案都有各自的优缺点和适用范围,在学习过程中应结合自身项目需求进行选择,并注意各方案之间的差异性和实现细节。对于初学者来说,可以从JEditorPane开始尝试,随着技能的增长逐步探索更复杂的嵌入方式。

JCEF vs JxBrowser

当寻找一种可以在 Java 中显示 HTML、执行 JavaScript 或使用 OAuth2 协议的解决方案时,人们通常会寻找一种成熟的可嵌入浏览器。 如果您选择 Chromium,则可以使用 JCEF 或JxBrowser进行集成。 ​

TeamDev的博客 2744

量化爬虫第一步:手把手教你搞定同花顺问财的hexin-v参数(附JS逆向实战)

本文详细介绍了如何通过JS逆向技术破解同花顺问财数据接口的核心加密参数hexin-v,构建稳定可靠的量化数据采集方案。从抓包分析到Cookie Hook技术应用,再到环境补全与参数生成实现,手把手教你完成量化爬虫的第一步。文章还提供了实战注意事项与优化建议,帮助开发者规避常见问题。

weixin_42620202的博客 301

Java网络编程——基于javafx的web浏览器

源码 工程地址:https://github.com/kingsleyljc/web_browser.git

kingsleyljc的博客 1298

report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...

diedai7174的博客 1798

Cadence仿真数字电路功耗

Cadence仿真数字电路功耗 数字电路的功耗采用平均电流乘电源电压获得,所以本文的关键是测量平均电流。 仿真前设置好仿真参数后,在仿真的ADE街边选择:outputs➡to be saved➡select on design 选择电源的负端电流(若选择正端,则电流为负): 选择完成后,在ADE界面讲所选节点的plot也勾选上,点击run。仿真完成后自动显示波形。在波形上选中该电流曲线,右击选择:send to➡calculator 注意上图中,商店前的波形不稳定,需要进行截取。在calculator

qq_41519780的博客 1万+

JxBrowser开启调试模式,JxBrowser debug

一、问题描述   像一般的浏览器都带了调试功能,按F12就能打开,在JxBrowser中如何开启调试模式了。   二、解决方法   以下代码就能开启调试模式:   import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.BrowserPreferences; impo...

fendo 6002

【全开源】旅游系统源码(Uniapp+FastAdmin+ThinkPHP)

通过源码的灵活配置和定制开发,我们可以根据旅游企业的实际需求,快速构建出符合其业务特点的旅游系统。旅游系统源码,作为这一变革的基石,为旅游业的数字化转型提供了强有力的支撑。通过深入研究和应用旅游系统源码,我们能够构建出更加智能、便捷、个性化的旅游服务平台,满足游客日益增长的旅游需求。国际化发展:随着全球化的深入发展,旅游系统源码也将迎来国际化的发展机遇,为国内外游客提供更加便捷、高效的旅游服务。跨界融合:旅游系统源码将与更多领域进行跨界融合,如与交通、餐饮、购物等行业的结合,为游客提供更加丰富的旅游体验。

2401_84413757的博客 2147

解决JxBrowser中BrowserView控件覆盖其他控件的办法

JxBrowser是一个基于chromium的Java浏览器组件,同时支持Swing以及JavaFx。因为是基于chromium开发的,所以JxBrowser对于H5以及CSS3的支持非常良好,兼容性也不错,完全可以代替JavaFx自带的Webview。但是在有一些使用场景上,JxBrowser会出现一些问题,比如我希望在布局容器上除了添加JxBrowser还想添加一些其他控件,按照正常情况来讲,...

拥抱世界 2472

SAP传输请求全流程详解:从SE10创建到STMS跨环境部署(附常见错误排查)

本文详细解析了SAP传输请求的全流程,从SE10创建到STMS跨环境部署,并提供了常见错误排查方法。涵盖工作台请求、定制请求等类型,以及STMS传输原理和实战操作技巧,帮助用户高效管理SAP系统变更。

weixin_29214335的博客 143

NX二次开发点通过云配准获取相同体

先找到体的参考方向(这个参考方向对于相同体重合之后是相同的),这个时候我们的思路是三个不共线的点确定一个坐标系,然后和绝对方向求转换矩阵。然后获取体的所有边的几何中心,把这些点通过转换矩阵转换之后存起来,再和另外一个体转换之后的点数据作对比,在误差范围内配对点的数量等于体获取点的数量就是相同体

qq_39541524的博客 1645

javafx-webview 加载页面卡住排查

javafx-webview 加载页面卡住排查

随笔 1209

智驾芯片新天团!NVIDIA Thor vs 高通8797 vs 蔚来神玑NX9031,2025-2026谁能称王?

应用场景推荐芯片理由高阶NOA + L4 Robotaxi千TOPS以上,满足BEV+TransformerL2+/L3级别NOAThor-U / 高通8797算力适中,功耗控制佳,生态成熟经济型城市NOAThor-Z / S性价比均衡,适合前装普及自研平台一体化NX9031华为之外最强自研整合方案📌 TOPS不再是天花板,GPU、带宽、功耗、上市时间和车企绑定都是决胜关键📌 Thor系列仍然统治高端,但国产神经元开始觉醒📌 智驾芯片的选择,从“强”走向“适合场景”

weixin_43199439的博客 2640

WebView性能、体验分析与优化

育新 徐宏 嘉洁·2017-06-09 20:03 在App开发中,内嵌WebView始终占有着一席之地。它能以较低的成本实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁。 然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案。 以发展的眼光来看,功能的动态加载以及三端的融合将会是...

weixin_30487701的博客 308

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JavaFX2的WebView的性能

原文地址:http://stackoverflow.com/questions/10762979/performance-of-webview-in-javafx I have used WebView quite a bit and usually the performance was perfectly fine and very usable. Html5 complian

2812

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java页面响应和渲染速度优化方法(BI)

针对现在大数据BI可视化大屏数据量过大、接口查询慢导致的页面加载过慢问题的一些解决思路和方案,这个也是影响用户体验最明显的一部分。

qq_58203537的博客 975

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WebView简介(加速加载篇)

当我们在使用WebView时,如果加载的网友比较大,这加载速度将非常慢。 现总结几种加速WebView加载的方法 1、提高渲染的优先级 webView.getSettings().setRenderPriority(RenderPriority.HIGH); 2、使用webView.getSettings().setBlockNetworkImage,把图片加载放在最后来加载渲染。参照示例

Robin Hu的专栏 1万+

java浏览器渲染_优化浏览器渲染

优化浏览器渲染资源被下载到客户端后,浏览器仍需加载,解释,并渲染HTML、CSS和Javascript代码。只需利用现有浏览器的特性简单地编排你的代码和页面,就可以提升客户端的性能。使用高效率的CSS选择器概述避免低效率的匹配大量元素的键选择器【key selectors】可以加快页面渲染。详细信息当浏览器解析HTML时首先构造一个内部文件树来代表所有显示的元素。然后浏览器根据标准的CSS级联、继...

weixin_42426472的博客 200

Java学习指南20 JavaFX高级

一、课程简介这是『Java学习指南系列』的第20篇教程 ,是Java开发的高级课程,介绍JavaFX的高级技术。JavaFX教程分为两篇:JavaFX入门篇,JavaFX高级篇。本篇课程的主要以实例为主,穿插必要的理论章节。以实际工程运用为背景,演示各种应用级技术的实现方式。二、主要内容 本篇配备充分的实例,包含以下内容:* 界面线程与工作线程的基本原理* 定时任务* 小任务,即一次性的短任务* 进度条定制* 对话框定制* 滚动窗口ScrollPane的使用* 弹出式窗口 Popup的使用方法* 拖放技术 Drag And Drop的使用方法* 本地程序调用* 与网站后台的交互方法三、课程体系〖Java学习指南系列〗:包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。〖网站开发系列〗:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

【java】本地客户端内嵌浏览器2 - chrome/chromium/cef/jcef

java客户端内嵌谷歌chrome浏览器,chromium开源项目CEF的java语言移植版jcef项目,给swing项目搭建spring框架,spring注解开发,spring启动,spring多线程异步开发,@Async的使用,内嵌浏览器防卡顿,打包带dll的Java项目,jar包转exe,exe4j使用Regular mode模式

苍狼的博客 1万+

Java还在用SWT开发UI吗-用JCEF吧

SWT, Java Chrome Jcef Chromium 浏览器 UI优化

200+新能源动力电池研发测试生产售后项目上位机开发 2326

Java 内嵌Chromium浏览器

【代码】Java 内嵌Chromium浏览器。

vincentwow的专栏 1942

chromium.Browser 禁止加载图片,提升加载速度

package com.teamdev.jxbrowser.chromium.demoTest.jd427; import java.awt.BorderLayout; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql....

pergoods的博客 1086

JavaFX && JFrame(含知识点)

JavaFX 和 JFrame 是两个不同的框架,用于创建图形用户界面(GUI)。JavaFX 是一个用于创建丰富客户端应用程序的现代框架,而 JFrame 是 Swing 框架的一部分,Swing 是 Java 早期的 GUI 框架。在 JavaFX 中,没有直接等价于 JFrame 的类。但是,JavaFX 提供了一个名为 `Stage` 的类,它可以用作应用程序的主窗口。`Stage` 类提供了类似于 JFrame 的功能,如设置标题、大小、位置等。

2301_79600015的博客 2179

IntelliJ IDE 插件开发 | (十四)使用 JCEF 嵌入网页

JCEF(Java Chromium Embedded Framework)是 CEF 针对 Java 的一个版本,通过使用 JCEF 可以在应用程序中嵌入网页,而 IDEA 插件开发也从 2020.1 版本开始支持这一特性,在此之前则是通过 JavaFX 去实现嵌入网页。

庄周de蝴蝶的博客 2951
上一篇: javafx stage.setIconified(true)最小化失效
下一篇: javafx最小化后右键关闭窗口,再点击系统托盘无法显示界面
why_su
博客等级 码龄10年 86粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值