scala - 当 Label 在顶部绘制时 ProgressBar 帧率下降
问题描述
我通常不会在这里寻求帮助,但我很难过 - 这个错误是我很长一段时间以来见过的最奇怪的事情。
https://gfycat.com/FluidFrigidEastsiberianlaika
我有一个简单的 UI 对象GhostProgressBar
,称为扩展ScalaFX.StackPane
并给它两个孩子 - aProgressBar
和 a Label
。在将它添加到其他一些 UI 屏幕后,我注意到我的帧率急剧下降,以至于 UI 痛苦地无法使用。
代码非常简单:
import scalafx.geometry.Pos
import scalafx.scene.control.{Label, ProgressBar}
import scalafx.scene.layout.StackPane
class GhostProgressBar extends StackPane {
alignment = Pos.Center
val bar = new ProgressBar() {
prefWidth = Integer.MAX_VALUE
}
val text = new Label() {
id = "ProgressBarText"
text = "PERFORMANCE TESTING"
}
children = List(bar, text)
}
在 GIF 中,我在常规元素中使用它VBox
-center
没有BorderPane
什么奇怪或非典型的。
从我观察到的行为来看,我认为在ProgressBar
. 刚才我又做了一些调试,我对它与文本样式有关的怀疑得到了证实。
这是 GIF 中文本的样式。
#ProgressBarText {
-fx-text-fill: #dddddd;
-fx-font-weight: bold;
}
#ProgressBarText .text {
-fx-stroke: #333333;
-fx-stroke-width: 1px;
-fx-stroke-type: outside;
}
当我删除该样式时,当栏击中文本时帧速率不会下降。
我无法弄清楚为什么会这样?有人有什么想法吗?我不知道它是 Scala 的东西还是 ScalaFX 的东西,无论它是否可以在 JavaFX 上下文中用相同的东西重现。
帮助将不胜感激。
编辑:我被要求提供版本,我们开始:
- 斯卡拉版本:2.12.7
- ScalaFX 版本:8.0.102-R11
- JDK版本:1.8.0_181
- JavaFX 版本:未知,我不熟悉 ScalaFX 的内部结构,也没有直接使用 JavaFX。
编辑 2:我被要求尝试相同的屏幕元素,但使用 JavaFX 元素而不是 ScalaFX 元素。这是我使用的代码,结果是一样的——每当概述的文本在进度条的上方时,帧率就会下降。
import javafx.geometry.Pos
import javafx.scene.control.{Label, ProgressBar}
import javafx.scene.layout.StackPane
class JavaFXGhostProgressBar extends StackPane {
this.setAlignment(Pos.CENTER)
val bar = new ProgressBar()
bar.setMaxWidth(Double.MaxValue)
val text = new Label()
text.textProperty().setValue("PERFORMANCE TESTING")
text.idProperty().setValue("OutlineProgressBarText")
this.getChildren.addAll(bar, text)
}
我找不到我在这里使用的 JavaFX 版本;IntelliJ 奇怪地没有告诉我。我也无法在我的外部库列表中找到它。
解决方案
推荐阅读
- c - 从shell脚本读取然后写入c程序
- php - 使用外部图像的 Wordpress 缩略图 url 错误
- android - Firebase 有时会抛出:NullPointerException
- rest - 资源注释域上集合属性的 Grails REST 更新不起作用
- swift - 在文件中声明的模块 Swift 项目在 Linux 上
- python - 添加到 Many2many 字段的用户在单击保存后消失
- javascript - 在 div 的最后一个子元素的末尾添加 html(可能通过 css)?
- javascript - Angular 7 在相同的 url 导航问题上?
- amazon-web-services - Elastic BeanStalk 实例中的关键 CPU 利用率
- powershell - 查找主 PowerShell 脚本文件的位置(路径)