问题标签 [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.

0 投票
1 回答
203 浏览

java - JTextPane DefaultStyledDocument 和 setEditorKit 冲突

我在一个项目中使用 JTextPane,我应该在其中显示行号并为一些关键字着色。为了显示行号,我使用了“setEditorKit”并为文本着色,我覆盖了 DefaultStyledDocument 的 insertString() 和 removeString() 方法,然后使用了“JTextPane.setDocument(DefaultStyledDocument_object)”。

我面临的问题是,如果我将 EditorKit 添加到我的 JTextPane 中,着色部分将不起作用。如果我在设置 EditorKit 后添加 DefaultStyledDocument,insertString 方法会将插入符号移至“零插入符号位置”,从而弄乱 UI。

这是我试图实现的功能的图像。

我想要的是
这就是我希望我的 JTextPane 看起来的样子。

混乱
这是它目前的样子

如何在我的应用程序中同时使用“setEditorKit”和“DefaultStyledDocument”?

0 投票
1 回答
453 浏览

java - 将多个 StyleConstants 添加到 AttributeSet

我有一串文字:“这是一个 |<good>| 到 |<ski>| 的山。”

我想要|<好>| |<滑雪>| 显示为红色、斜体、FontSize 9。

我已经设置了单独的 AttributeSets

我有一个正确找到模式的正则表达式。但是,如果我尝试将多个 AttributeSets 设置为相同的匹配,则只有第一个尊重正则表达式。其他人只是将自己应用于整个字符串。这是整个班级:

如果有人可以帮助我学习我尚未发现的最佳实践来实现这一目标,我将不胜感激。

0 投票
3 回答
188 浏览

java - Java 代码优化 - 如何优化此 remove() 函数?

我正在为一个名为 Compilers 的类制作一种自定义语言作为项目。整个项目是用 Java 编写的,使用JFlex作为我的词法分析器,并使用Cup作为我的句法分析器。

我为该语言创建了一个简单的文本编辑器,它基本上由一个 JTextPane 组成,用户可以在其中键入将被解析的自定义代码。这个JTextPane 有一个DefaultStyledDocument,用于设置字符属性,例如为JTextPane 中的代码(文本)更改关键字、注释、字符串、数字等的颜色。

这是我正在使用的代码:

SyntaxHighlighter 类基本上是一个词法分析器(使用 JFlex 制作),仅用作搜索特定文本片段(关键字、字符串等)的一种方式。一切都很完美,但是...

问题:

当 JTextPane 中有大量文本时,按住退格键删除文本会使程序非常难以滞后。我认为发生这种情况的原因可能是因为 SyntaxHighlighter 运行时会删除每个字符,因为按住退格键会为每个被删除的字符调用 remove() 函数。插入文本实际上不是问题,因为您可以从文件中加载代码(该文件中的整个文本将由 SyntaxHighlighter 整体分析),或者您无法快速输入以注意到滞后。

有没有办法可以优化这个?谢谢你们!

0 投票
1 回答
40 浏览

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):同样的错误。

0 投票
1 回答
100 浏览

java - Java 语法高亮不匹配字符

我正在通过重用此处发布的代码来实现语法突出显示。问题是每个字符“{,},<,>”都没有着色,它后面没有非字符。例如在“

0 投票
1 回答
462 浏览

java - 如何清除 JTextPane 中的所有样式?

我正在.rtf使用RTFEditorKit(). 我添加了代码来创建新文档、打开.rtf文档、另存为.rtf文档,以及为文档内容添加样式,例如粗体、斜体和下划线。

我正在使用一个JTextPane.


这是我的问题:我在文本的内容中添加了一些样式(例如粗体、斜体、下划线或颜色)。然后,保存或不保存该文档,我通过单击“新建文档”图标打开一个新文档。

如果我在新文档中输入一些文本,文本会以我在上一个文档中使用的粗体、斜体、下划线和颜色样式显示;而我本来希望这些已经被清除。

我怎样才能做到这一点?我在“新文档”动作监听器中尝试了三种不同的方式——它们都不起作用。这些可以在下面看到:



我的应用程序最小代码:

}

0 投票
1 回答
378 浏览

html - 如何在 Chrome 的 HTML 表单控件中更改默认的强蓝色?

在此处输入图像描述

除了使用 3 rd css 库来更改输入元素的默认锐蓝色样式外,是否有任何解决方法?经过这样的更新,复杂界面的外观恰好完全不一致......

0 投票
0 回答
19 浏览

java - 有没有办法将 Java DefaultStyledDocument 读取为 HTML?

我正在将基于 Swing 的旧 Java 6 应用程序升级到新的基于 HTML5 浏览器的应用程序。

旧系统的特点之一是它将文档作为 DefaultStyledDocuments 直接作为 varbinary 数据保存到 MSSQL 数据库中。

使用下面的 PHP,我可以读取数据并输出文件,但它有大量的头信息:

文件输出:

... ETC。...

... ETC。

出于兼容性原因,我想DefaultStyleDocument直接将拉取到 HTML WYSIWYG 编辑器中。然后,我会将 HTML 化的文档保存回后端的单独列中。

这可以用Java来完成吗?php或者js我是否需要从Java运行一个单独的循环来将所有文档转换为HTML?