dec*_*rig 5 java swing text text-editor
我有一个想法,用Java写一个笔记记录应用程序,在你输入时做一些简单的文本替换; 可能是Markdown语法的一小部分.因此,例如,如果您输入的行是#sometext,它将被渲染:
Wikidpad是我正在尝试做的事情的一部分(我不只是重新实现它,只是部分语法/显示功能).
所以基本上我正在寻找一种方法来编写某种组件,当用户点击"返回"时,它会查看输入的行,并做任何需要做的魔术才能使html标签正确.
我一直在反对Documents and DocumentFilters和DocumentListeners以及HTMLReaders,而且没有太多运气,有人能把我放在正确的道路上吗?
您感兴趣的是java 文本编辑器套件。本教程很棒,帮助我实现了一个听起来与您的问题类似的维基编辑器。swing 编辑器套件(无论您相信与否)是专门为解决您的问题而设计的。我已经使用这种技术编写了一个类似于动态维基的链接系统,尽管并非没有很多困难。这是我必须做的:
制作文档 第一个任务是创建一个文档模型,在识别文本时对模式进行标记。如果您查看链接示例中的 JavaDocument,就会发现有一个 insertUpdate 调用。在文档中,您可以找到您正在寻找的模式并将其替换为适当的自定义样式。本质上,您只需创建一个样式并将其应用到与模式匹配的文档中。更新方法的替代方法是使用私有工作线程定期扫描新的 wiki 内容。
构建渲染上下文 模型完成后,您可以实现一个上下文来构建适合渲染新文本的视图。在链接的示例中,它们扩展了 StyleContext。这是用于将文本呈现到视图的内容。在这里,您可以设置渲染规则,以找到您的特定标签并执行诸如下划线和删除方括号之类的操作。
制作一个编辑器工具包这会将所有内容拼接在一起并确定文档的内容类型。
将文档和视图保留为单独的上下文的好处是您可以将文档附加到两个视图,一个是纯文本,另一个是新的自定义上下文。由于默认样式无法识别您的标签,因此应以原始 wiki 代码形式显示它。新视图会将视图转换为适当的链接。
我希望这有帮助。需要注意的是,不幸的是,即使对于 swing,这个东西也很复杂。祝你好运!