问题标签 [styleddocument]
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 - 用于下一个输入的 Java styleddocument 更改属性
我有 JTextPane 和一个复选框,表示可以说粗体。因此,如果选中复选框,我希望我在 JTextPane 中输入的任何内容都是粗体。我不想更改 JTextPane 的整个字体,我只想将下一个字符设置为粗体。我做了这个,它有效:
但我不认为这样做是个好主意
我试过了,doc.setCharacterAttributes(doc.getLength(),1, ns, true)
但它不起作用,如果我这样做doc.setCharacterAttributes(doc.getLength()-1,1, ns, true)
会keyReleased
很糟糕,我的意思是首先会看到我输入的内容,然后我会看到它在变化,如果我输入速度很快,它不会改变某些字母的属性。那么有人知道更好的方法吗?
java - 是否可以在 JTextPane StyledDocument 中设置段落长度?
我正在使用JTextPane
with StyledDocument
,是否可以设置其段落的长度?我的目标是当插入的文本JTextPane
长度超过 400 像素时,超过转到新行。
编辑:
我使用下面的方法为 textPane 设置样式
并使用以下将文本插入到我的 JTextPane:
我想设置段落的长度。
编辑2:
我使用不同的样式,用于不同类型的文本。
编辑3:
我用滚动条添加我JTextPane
的。JPanel
java - JTextPane 附加空行
我有一个 JTextPane 我用以下方法设置它的文本。
我像这样构建内容字符串:
所以我让这个字符串正确出现在 JTextPane 中,问题是当我将 JTextPane 的内容保存到 txt 文件中并将其重新加载到 JTextPane 时,每一行之后都会出现一个新的空行。
图片在这里: http: //postimg.org/image/76z69oe7x/
代码保存...
并加载:
在这个方法中没有 /n 它看起来像这样: http: //postimg.org/image/kn38ja8ov/
问题的原因可能是我在行尾多了一个“\r”字符,如下所示:http: //postimg.org/image/9ny41rz3z/。但我不知道它们来自哪里。
谢谢你的时间!
java - 修复 DefaultStyledDocument 的样式
我想知道是否可以修复StyledDocument
java中的样式。根据我的观察,风格会根据前一个职位的风格而改变。
所以我可以用我定义的样式键入内容,而不受之前位置的样式的影响。
非常感谢您的回复!
java - JTextPane 和正则表达式的问题
我有一个JTextPane
包含 XML 字符的字符串,我希望更改 XML 开始标签的颜色;为此,我使用正则表达式查找开始标签,然后将相关文本索引的字符属性设置为所选颜色。这可以在以下代码中看到:
然而,问题是Matcher.start()
并且StyledDocument.setCharacterAttributes()
似乎以不同的方式递增(似乎StyledDocument
忽略了换行符),从而导致彩色文本交错。
问题不在于正则表达式本身,因为System.out.println(matcher.group());
while 循环中的 a 显示以下正确输出:
有没有办法强制Matcher.start()
和StyledDocument.setCharacterAttributes()
持续增加,或者我必须实现一个新的行计数器?
编辑:正如 Schlagi 建议的那样,将所有替换\r\n
为\n
确实有效,但是我担心这会使代码有点混乱且难以维护。欢迎其他建议!
java - 拆分 StyledDocument
我目前正在编写一个程序,该程序接受 a 中的样式文本,JTextPane
并在不可编辑中显示相同的样式文本JTextPane.
问题是我实际上想在输入和显示之间解析文档。基本上我希望能够DefaultStyledDocument
在保持格式的同时将 a 拆分为两个文档。我怎样才能做到这一点?
SSCE 说明点:
注意:我使用 Netbeans GUI 构建器,因此生成的代码很长。
基本上,在示例中,我在 input 中输入了一些格式化文本JTextPane
。然后我希望能够将该格式化文本拆分到两个输出窗格中,而不会丢失格式。在 SCCE 中,当用户按下“输出”按钮时,应复制数据,并按--
行拆分。在示例中,我使用了一种不存在的split()
方法,但我认为它明白了这一点。
这是预期的输入(对于这个特定的例子):
这是预期的输出:
我原本以为这个问题有一个可能的答案。但我试过了,发现它不起作用。最后,如何在保持样式的同时拆分样式文档。
java - 如何使用特定字符集写入 StyledDocument?
对于 NetBeans 插件,我想使用特定字符串和特定字符集更改文件(在 NetBeans 编辑器中打开)的内容。为了实现这一点,我使用 EditorCookie 打开文件(DataObject),然后通过将不同的字符串插入数据对象的 StyledDocument 来更改内容。
但是,我感觉文件总是保存为 UTF-8。即使我在文件中写了一个文件标记。难道我做错了什么?
这是我的代码:
我也尝试过这种方法也不起作用:
java - 如何获取具有 JTextPane 的所有属性的内容?
我有一个JTextPane
和一个ActionEvent
,我想将JTextPane
(带有颜色、文本和其他属性)的内容保存在另一个类(作为变量)中。稍后我想JTextPane
用变量之一交换 的内容。
我曾尝试使用:
和
但两者都没有工作。
我想过放弃整个JTextPane
过程,但显然窗格在其他班级中仍然得到更新......
编辑:我只会使用内容再次显示它(稍后)JTextPane
。我不会将其保存在文件或类似文件中。
java - 如何将文档中的样式文本持久存储在数据库中?
所以我目前正在开发一个允许用户创建带有样式文本的“帖子”的程序。现在我正在使用 Java 的 DefaultStyledDocument,但我对其他选项持开放态度(不过最好它们实现 StyledDocument)。我最初在这里发布了一些关于直接序列化 DefaultStyledDocuments的内容。但是,可能有更好的方法来存储这些文档。我怎样才能做到这一点?
此外,我希望能够将这些样式存储在数据库(可能是 MySQL)中,考虑到这一点,我还需要知道什么吗?我可以直接导出到 XML 吗?
最后,快速讨论 HTMLDocuments。我可以为此使用 HTMLDocuments,但是我听说过关于 Java 的 HTML 渲染器的坏消息,而且我还希望用户能够轻松地编辑样式化的文本。DefaultStyledDocument 允许使用 StyledEditorKit 非常轻松地进行编辑。所以 HTMLDocuments 有它们的缺点,除非可以找到替代方案,否则我宁愿坚持使用 DefaultStyledDocuments。
java - 哪个是用于数字和字符串的正确正则表达式?
我正在尝试创建简单的 IDE 并基于我的 JTextPane 着色
- 字符串(“”)
- 注释(// 和 /* */)
- 关键字(公共,int ...)
- 数字(69 等整数和 1.5 等浮点数)
我为源代码着色的方式是覆盖 StyledDocument 中的 insertString 和 removeString 方法。
经过多次测试,我完成了评论和关键字。
Q1:至于我的字符串着色,我根据这个正则表达式为我的字符串着色:
这在 99% 的情况下都有效,除非我的字符串包含特定类型的字符串,其中代码中有一个“\
Q2:对于整数和小数着色,根据这个正则表达式检测数字:
通过使用正则表达式“\d+”,我只处理整数而不是浮点数。此外,作为另一个字符串一部分的整数被匹配,这不是我在 IDE 中想要的。哪个是用于整数颜色编码的正确表达式?
下面是输出的截图:
感谢您提前提供任何帮助!