首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java的文本API是否适合显示自动生成的文本?

Java的文本API是否适合显示自动生成的文本?
EN

Stack Overflow用户
提问于 2013-11-17 14:57:05
回答 1查看 134关注 0票数 1

(底部的简短摘要)

你好,

我正在用Java编写一个用于检查二进制文件的工具。由于数据的格式,我无法以线性的方式解析文件。相反,我必须在整个文件中跳过很多。在检查它时,我正在填充一个数据结构,它用所需的信息对文件中的每个偏移量进行注释。所有注释都是字符串。有些应该具有不同的颜色和与它们交互的能力,例如根据类型右键单击自定义操作。

因此,基本上,我将文件解析为一个类似地图的结构,在不可预测的位置添加节点和叶子。我希望将内容显示为线性文本,并按二进制文件中的偏移量排序。当文件的其他部分仍在被解析时,用户应该能够处理已解析的内容,因此等待解析完成,然后执行线性插入不是一个选项。用户永远不会更改文本的任何部分,所以我不需要撤消操作等。

我看过Swing的文本API,我需要的一些特性似乎就在这里,例如使用不同的View对象来与一些文本进行交互。但是,我已经查看了源代码,似乎Swing文档有一个存储整个文本的底层内容类。虽然内存不是问题,但我担心在解析文档时在任意位置插入文本的性能。GapContent类(它是文档内容接口的默认实现)适用于同一位置的多个编辑,因此在任意位置插入会导致大量数组副本的发生。

我考虑了其他选项,但由于我以前从未使用过Swing的文本API,我需要一些建议,这些想法是否好:

( a)自己实现AbstractDocument.Content。问题是Swing在“虚拟”文本文件中使用偏移量,因此我必须记住Swing中的哪个偏移量属于结构中的哪个节点。在解析过程中更改结构将使这种方法变得相当复杂。

( b)实现了整个文档接口。我不确定这是否会导致与备选方案a相同的问题。

c)使用我已经拥有的结构,并为它创建一个完全自定义的Swing组件。这听起来也很复杂,因为我希望对用户有一种类似文本编辑器的感觉。但至少我不必引入虚拟文本偏移,只需为添加的每一行插入视图。

因此,简而言之:

  • 我正在解析一个二进制文件,并用字符串列表(行)注释文件中的一些地址。
  • 解析过程中,将在不可预测的地址上进行新的注释。
  • 我已经有了一种在某个地址请求所有注释的方法,即字符串已经存储在我的结构中。观察者接收二进制文件中带有实际偏移量的更改。
  • 我需要一种方法来显示当结构得到更新时得到更新的结构的文本表示形式。
  • 用户永远不会编辑文本,但是有些词应该是对的,可以点击。
EN

回答 1

Stack Overflow用户

发布于 2013-11-18 04:25:52

您可以利用WatchEvent侦听文件上的任何更改。您可以在http://docs.oracle.com/javase/tutorial/essential/io/notification.html查阅正式文档以获得详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20032142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档