【问题标题】:Code/text folding in SWINGSWING 中的代码/文本折叠
【发布时间】:2011-08-05 12:30:16
【问题描述】:

我正在寻找一种为摇摆 JTextArea 或 JTextPane 提供“文本折叠”功能的方法

更具体地说,我想在一个文本组件中添加一个数据块,并且我希望该组件只显示一些标题行。然后用户可以通过单击某个图标来展开该块。这就像大多数 IDE 中的代码折叠功能一样。

经过一番彻底的搜索,我找到了->some sample code<-,但这里使用的机制对我来说非常模糊,当我尝试从文档中删除文本时它停止工作。

也许使用 XML 作为输入可能是一个线索?

【问题讨论】:

  • “也许使用 XML 作为输入可能是一个线索”是什么意思?您是否正在编写以在可扩展视图中显示 XML?如果是,我会考虑使用JTree 而不是文本组件。
  • 不抱歉,我不需要多级文档,我只是想一些标记可以帮助确定文本的哪一部分是可折叠部分。

标签: java swing folding


【解决方案1】:

这个如何添加折叠区域 http://java-sl.com/collapse_area.html

这一个如何表示XML http://java-sl.com/xml_editor_kit.html

【讨论】:

  • 谢谢!我尝试分享与所有文本处理/表示相关的代码 sn-ps。
  • 嗨 StanislavL,很高兴认识网站作者;)在我的问题中已经有指向您网站的链接,显然您是唯一为我提供解决方案的人。但是,正如我所说,我无法正确使用您的代码,并且一旦我尝试删除部分文本,事情就无法正常工作(主要是当缓冲区也在增长时,我试图裁剪文档的开头大的)。但是,我不知道您的 xml 编辑器工具包,我会尝试一下。 THX
  • 能否提供SSCCE重现删除片段问题?
  • 嗨,抱歉,我最近没有时间查看我的问题。我在 collapse_area 上遇到的问题实际上是非常随机的。即使我没有从文档中删除数据,或者在完全清除 (doc.remove(0, doc..getLength())...
  • 但无论如何:我看过你的 XML 编辑器工具包,它很棒!它就像一个魅力。你网站上的解释也很好。非常感谢 StanislavL
【解决方案2】:

我将从查看 NetBeans API 开始:http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-editor-fold/overview-summary.html

如果您要自己做,您需要提供一个Document 实现,使JTextComponent 认为正在添加或删除片段,然后附加点击事件告诉文档自行更新。很多工作。

在视觉上,使用JEditorPane 也可能更好,但这可能需要更多的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 2016-10-26
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    相关资源
    最近更新 更多