问题标签 [defaultstyleddocument]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JTextPane DefaultStyledDocument 和 setEditorKit 冲突
我在一个项目中使用 JTextPane,我应该在其中显示行号并为一些关键字着色。为了显示行号,我使用了“setEditorKit”并为文本着色,我覆盖了 DefaultStyledDocument 的 insertString() 和 removeString() 方法,然后使用了“JTextPane.setDocument(DefaultStyledDocument_object)”。
我面临的问题是,如果我将 EditorKit 添加到我的 JTextPane 中,着色部分将不起作用。如果我在设置 EditorKit 后添加 DefaultStyledDocument,insertString 方法会将插入符号移至“零插入符号位置”,从而弄乱 UI。
这是我试图实现的功能的图像。
这就是我希望我的 JTextPane 看起来的样子。
这是它目前的样子
如何在我的应用程序中同时使用“setEditorKit”和“DefaultStyledDocument”?
java - 将多个 StyleConstants 添加到 AttributeSet
我有一串文字:“这是一个 |<good>| 到 |<ski>| 的山。”
我想要|<好>| 和|<滑雪>| 显示为红色、斜体、FontSize 9。
我已经设置了单独的 AttributeSets
我有一个正确找到模式的正则表达式。但是,如果我尝试将多个 AttributeSets 设置为相同的匹配,则只有第一个尊重正则表达式。其他人只是将自己应用于整个字符串。这是整个班级:
如果有人可以帮助我学习我尚未发现的最佳实践来实现这一目标,我将不胜感激。
java - Java 代码优化 - 如何优化此 remove() 函数?
我正在为一个名为 Compilers 的类制作一种自定义语言作为项目。整个项目是用 Java 编写的,使用JFlex作为我的词法分析器,并使用Cup作为我的句法分析器。
我为该语言创建了一个简单的文本编辑器,它基本上由一个 JTextPane 组成,用户可以在其中键入将被解析的自定义代码。这个JTextPane 有一个DefaultStyledDocument,用于设置字符属性,例如为JTextPane 中的代码(文本)更改关键字、注释、字符串、数字等的颜色。
这是我正在使用的代码:
SyntaxHighlighter 类基本上是一个词法分析器(使用 JFlex 制作),仅用作搜索特定文本片段(关键字、字符串等)的一种方式。一切都很完美,但是...
问题:
当 JTextPane 中有大量文本时,按住退格键删除文本会使程序非常难以滞后。我认为发生这种情况的原因可能是因为 SyntaxHighlighter 运行时会删除每个字符,因为按住退格键会为每个被删除的字符调用 remove() 函数。插入文本实际上不是问题,因为您可以从文件中加载代码(该文件中的整个文本将由 SyntaxHighlighter 整体分析),或者您无法快速输入以注意到滞后。
有没有办法可以优化这个?谢谢你们!
java - Jython - 如何在 DefaultStyledDocument 中合并两个 LeafElement?
我正在尝试“规范化”一个 DefaultStyledDocument 子类,在我们拥有的意义上org.w3c.dom.Node.normalize()
:也就是说,合并相邻的文本“叶子”。在 DefaultStyledDocument 的情况下,如果两个相邻的叶子具有相同的属性(或没有属性),则这些叶子被标识为合并。
下面是一个简单的版本(我们不检查实际属性:这是一个用例,您要么拥有纯文本,要么拥有一种可能的标记样式的文本)。
当我运行这个我得到这个错误:
javax.swing.text.AbstractDocument$BranchElement.replace(AbstractDocument.java:2290) 的 java.lang.System.arraycopy(Native Method) 的线程“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException 中的异常
我赶紧补充一下,在尝试javax.swing.text.DefaultStyledDocument()
作为 LeafElement 构造函数中的参数 1 之前,我尝试了“ self
”(即normalise
在第一行调用的 DefaultStyledDocument):同样的错误。
java - Java 语法高亮不匹配字符
我正在通过重用此处发布的代码来实现语法突出显示。问题是每个字符“{,},<,>”都没有着色,它后面没有非字符。例如在“
java - 如何清除 JTextPane 中的所有样式?
我正在.rtf
使用RTFEditorKit()
. 我添加了代码来创建新文档、打开.rtf
文档、另存为.rtf
文档,以及为文档内容添加样式,例如粗体、斜体和下划线。
我正在使用一个JTextPane
.
这是我的问题:我在文本的内容中添加了一些样式(例如粗体、斜体、下划线或颜色)。然后,保存或不保存该文档,我通过单击“新建文档”图标打开一个新文档。
如果我在新文档中输入一些文本,文本会以我在上一个文档中使用的粗体、斜体、下划线和颜色样式显示;而我本来希望这些已经被清除。
我怎样才能做到这一点?我在“新文档”动作监听器中尝试了三种不同的方式——它们都不起作用。这些可以在下面看到:
我的应用程序最小代码:
}
java - 有没有办法将 Java DefaultStyledDocument 读取为 HTML?
我正在将基于 Swing 的旧 Java 6 应用程序升级到新的基于 HTML5 浏览器的应用程序。
旧系统的特点之一是它将文档作为 DefaultStyledDocuments 直接作为 varbinary 数据保存到 MSSQL 数据库中。
使用下面的 PHP,我可以读取数据并输出文件,但它有大量的头信息:
文件输出:
... ETC。...
... ETC。
出于兼容性原因,我想DefaultStyleDocument
直接将拉取到 HTML WYSIWYG 编辑器中。然后,我会将 HTML 化的文档保存回后端的单独列中。
这可以用Java来完成吗?php
或者js
我是否需要从Java运行一个单独的循环来将所有文档转换为HTML?