加载大量文本时在 JavaFX 2 中加速 TextArea 的方法?

Posted

技术标签:

【中文标题】加载大量文本时在 JavaFX 2 中加速 TextArea 的方法?【英文标题】:Ways to speed up TextArea in JavaFX 2 when loading a lot of text? 【发布时间】:2013-04-25 21:32:29 【问题描述】:

我在 UI 中使用 JavaFX 2。我不得不在TextArea 中放很多文字;将 500KB 到 1MB 的文本加载到 TextArea 中。

在调整窗格大小时,使用BorderPane 布局时,我的 UI 运行速度较慢。有没有特定的方法可以加快速度?我应该使用的另一个 UI 组件?

【问题讨论】:

为 Java 8 创建的 JavaFX 有许多性能增强。试试Java 8 early access release,看看您的性能问题是否得到解决。 javafx-jira.kenai.com/browse/RT-16853 看来,现在没有更好的 JFX 文本渲染组件了。您可以依赖 TextArea,或者在堆栈窗格中尝试 textNode 作为选项。但没有比这更好的了。 在 JFX8 (Linux) 中仍然很慢。等我有时间再研究一下! 【参考方案1】:

似乎,现在没有更好的 JFX 文本渲染组件了。您可以依赖 TextArea,或者在堆栈窗格中尝试 textNode 作为选项。但没有比这更好的了。

TextArea 的性能存在问题:javafx-jira.kenai.com/browse/RT-16853

我的建议是:您可以实现自己的组件,该组件的功能有限,但针对性能进行了调整:只需了解您必须显示文本的哪一部分,然后创建一个 Text 节点,它只会呈现非常有限的部分的文本。还有一点技术幻想和直接的双手。

此外,如果您愿意,您可以修复现有 TextArea 中的问题,并将修复推送到 OpenJFX,并可能将修复推送到现有 JFX(8.0 版本)。

此外,您应该尝试 8.0 版本,因为它实际上包含重大的性能修复和改进。

【讨论】:

以上是关于加载大量文本时在 JavaFX 2 中加速 TextArea 的方法?的主要内容,如果未能解决你的问题,请参考以下文章

一些 CSS 属性在 JavaFX 2.1 中无法正常工作

如何在按钮单击时在 SwiftUI 中为 TextField 设置文本

JavaFx TextArea 提示文本

单击时在JavaFX中填充组合框

如何在 onfocus 和 outfocus 时在 JavaFX TextField 上执行任务?

JavaFX - 在菜单中显示加速器修饰符