【问题标题】:Can anyone recommend a Java rich text editor? [closed]谁能推荐一个Java富文本编辑器? [关闭]
【发布时间】:2010-09-16 20:30:06
【问题描述】:

富文本编辑器必须用 Java 实现,提供 Swing 支持,最好是开源的。

我希望将其集成到现有的 Java/Swing 应用程序中。

谢谢。

【问题讨论】:

  • 我不知道 Swing,但 jEdit 似乎完全是 Java.. 而且它也是开源的

标签: java swing editor rtf


【解决方案1】:

这可能不像您所追求的那样直接...但是 JTextPane 支持富文本和 HTML。 将其设置为 display rtf 或 html 很简单,只需在填充内容之前设置编码类型。

至于制作小“B”和“I”等样式修改按钮,如果归根结底,在紧要关头,自己制作并不难。 想想带有图标集的 JButton。他们的听众得到 JTextPane 的当前选择开始和结束索引位置,如下所示: jpane.getSelectionStart()jpane.getSelectionEnd() 然后在这些位置插入开始和结束 html/rtf 标签。

撤消也很容易——维护一个简单的Jpanel字符串内容堆栈,每次用户进行编辑操作时,一个简单的history.push(jpane.getText())会存储状态,撤消按钮就像@987654324一样简单@。

我/你可以用 B 制作一个,I 我估计大约 30 分钟后撤消 - 其他按钮(如列表)需要更长的时间,但不会太多。

【讨论】:

  • 如何使用这种方法处理样式文本的复制/粘贴?
  • @AlekseyOtrubennikov 你可以自己实现一个UndoManager
【解决方案2】:

试试 MetaPhase editor,基于 Charles Bell 的 HTMLDocumentEditor。它是LGPL v3 许可的,非常棒,特别是作为使用StyledEditorKit 的示例,讨论了here

【讨论】:

  • 虽然它包含一些错误,但它有足够的开箱即用功能..我现在正在研究整个系统的可扩展性..也许可以压缩更多功能(比如添加来自磁盘驱动器的图像)..
  • 上面的网址好像失效了,试试这个:kenai.com/projects/metaphaseeditor
  • 网址又失效了——有人有有效的链接吗?
【解决方案3】:

您可以在 Swing 应用程序中嵌入所有开源富文本编辑器的母体:OpenOffice.org 提供了一个“OOBean”,您可以使用它在 Swing 应用程序中嵌入完整的 OpenOffice 实例。

【讨论】:

  • 可能有点矫枉过正,但它绝对是终极解决方案:D
  • 它工作正常。但这不是一个简单的解决方案,因为 OOBean 是重量级组件,而 Swing 是轻量级组件。两种机制的结合并不理想。
【解决方案4】:

我查了一下,找不到只有一个文本编辑器的 jar 文件。 但是,这里有 2 个其他选项

选项 A 使用 Swing 并自己构建一个。 Swing 在 javax.swing.text 中已经包含了很多组件,尽管它仍然需要大量的代码。我找到了一个例子here

选项 B 从开源项目中清除代码。我发现 2 个项目具有非常好的 HTML WYSIWYG 类型编辑器,可以提取(两者都包含在几个类中)。

  1. Memoranda (GPL):它的文本编辑或在 net.sf.memoranda.ui.htmleditor.HTMLEditor 中。它是一个 JPanel,只使用一个其他类。
  2. Ekit (LGPL):它是一个功能齐全的 WYSIWYG Html 编辑器。它的 com.hexidec.ekit.EkitCore 类是一个 JPanel,看起来相当多用途,尽管它使用了包中的许多其他类。

如果你有预算的话,还有一堆商业的:)

【讨论】:

    【解决方案5】:

    看看JWordJRichTextEditor

    JWord 是一个商业摇摆富文本编辑器,具有表格、分页和 RTF/opendoc/XML 支持。 还支持页眉/页脚、多列布局、导出 HTML、SVG、WMF 等。

    JRichTextEditor 是一个开源的 Swing 小部件,非常适合做笔记。支持图像,一种简单的 XML 格式存储,导出为 PDF、HTML。不如 JWord 先进,但开源。

    可能会有帮助。

    【讨论】:

      猜你喜欢
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2016-07-04
      • 2010-11-06
      相关资源
      最近更新 更多