小编Joe*_*Joe的帖子

具有动态背景 JavaFX 的磨砂玻璃效果

我正在开发一个 JavaFX 应用程序:

https://i.stack.imgur.com/Q24i4.png

在这里,我希望左窗格具有模糊背景效果,即,当用户滚动地图时,左窗格后面的内容会发生变化,并且我想使用该内容(模糊)作为左侧的背景窗格。我几乎已经完成了。

每当我滚动地图时,它都会工作,并且后面的内容会更新,但在系统监视器中我可以看到 CPU 使用率、温度和总体功耗急剧上升。

为了实现霜玻璃效果,我在 webEngine(包含地图)中添加了一个事件监听器(用于检测鼠标移动):

Document doc = webEngine.getDocument();
((EventTarget) doc).addEventListener("mousemove", listener, false);
Run Code Online (Sandbox Code Playgroud)

监听器执行一个方法:

  1. 检索左窗格(地图)下方的实际内容。

  2. 模糊图像。

  3. 更新屏幕

为了更新屏幕,该方法删除左窗格(VBox)和上一个图像(这是背景)。然后再次首先添加模糊图像窗格,然后将左窗格添加到根窗格。

所以,我认为我遇到性能问题的原因是,当用户拖动地图时,它必须非常快速地删除窗格(左窗格和背景图像)并将其添加到根窗格。

问题:CPU 使用率非常高

那么,JavaFX 中是否还有其他方法,不需要如此高的 CPU 使用率?

类似的东西,不需要一直删除和添加窗格。

cpu javafx blur panes effect

3
推荐指数
1
解决办法
4458
查看次数

标签 统计

blur ×1

cpu ×1

effect ×1

javafx ×1

panes ×1