加载大量文本时在 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 的方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何在按钮单击时在 SwiftUI 中为 TextField 设置文本