【问题标题】:Inaccurate color changing of text in JTextPaneJTextPane 中文本的颜色变化不准确
【发布时间】:2017-09-29 07:33:38
【问题描述】:

尝试使用此代码,但它没有准确地改变颜色,请注意单词 stop。这会在您键入单词时发生。

https://stackoverflow.com/a/28773736/7694892

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建 minimal reproducible example。使用“编辑”链接改进您的问题 - 不要通过 cmets 添加更多信息。谢谢!
  • 不要链接到代码:将其作为格式良好的文本添加到您的问题中。

标签: java swing jtextpane


【解决方案1】:

在我看来,您的索引有问题。当您移动到第二行时,它会减一。

这将向我表明您正在使用 textPane.getText() 来获取要标记的文本。

一种解决方案是直接从文档中获取文本:

int length = textPane.getDocument().getLength();
String text = textPane.getDocument().getText(0, length);

查看Text and New Lines 了解这两种方法的区别。

基本上每行的索引都会减一,因为字符串包含每个换行符的“\r\n”,但文档只包含“\n”。

如果这没有帮助,那么您需要自己调试代码以找出偏移量错误的原因。

【讨论】:

  • 谢谢!这对我有用,从来没有真正了解 java swings 中不同文本编辑器的那些特殊字符。
猜你喜欢
  • 2012-01-20
  • 2012-10-28
  • 2013-10-06
  • 2012-06-14
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多