【问题标题】:Handling of Position instances in java swing documentsjava swing文档中Position实例的处理
【发布时间】:2014-10-14 21:21:04
【问题描述】:

我尝试在java swing中自定义PlainDocument类。

我的目的是用javax.swing.text 包中的Position 接口的实例标记文本的结构(如标题、脚注等)。

您可以使用AbstractDocument 类的createPosition(int offset) 方法插入Position 对象。

此时我遇到了以下问题:

  1. 如何跟踪插入的Position 对象? (有一些方法可以让你开始 - 和 结束文件的Position,仅此而已)
  2. 与此问题相关:如何实例化 Position 对象?

提前致谢。

编辑:

我读到createPosition 方法有一个Position 类型的返回参数。这就是问题的全部。所以问题并不是真的必要。

无论如何要完成此操作:只需在自定义 Document 上声明一个哈希图 HashMap<Integer, Position> 并在其中安全地创建与其创建顺序相关的所有已创建职位...

【问题讨论】:

    标签: java swing document


    【解决方案1】:
    1. 文档实际上是具有开始/结束偏移量(实际上是位置)的元素树。所以使用 documentInstance.getDefaultRootElement() 并获取元素的子元素

    2. AbstractDocument 有创建职位的方法

      public synchronized Position createPosition(int offs) throws BadLocationException
      

    【讨论】:

    • 这个提议的问题是,'PlainDocument' 的底层树至少也是由换行符构成的。这意味着文本的每个换行符都会创建一个单独的“LeafElement”。对于我的任务,有必要专门重复使用 Position 对象。
    • 我看不出叶子元素有什么问题。无论如何,您可以创建自己的 Position 实例并将它们保存在您的类中,当然也可以使用它们。
    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    相关资源
    最近更新 更多