ColorPane - 可以抓取不同角色的字符串?

时间:2013-04-10 03:09:41

标签: java swing jtextpane styleddocument

我正在处理一个给我的旧项目,它目前使用java swing并且有一个基本的gui。它有一个ColorPane,可以扩展Jtextpane以更改所选文本的颜色。

它使用了这种方法

  public void changeSelectedColor(Color c) {
      changeTextAtPosition(c, this.getSelectionStart(), this.getSelectionEnd());
  }

假设string =“Hello World!”你好颜色是绿色世界是黑色。如何根据Jtextpane的颜色获取Hello out。我已经尝试了笨重的方式,只是存储选定的单词,因为我改变了颜色,但有没有办法,我可以一次抓住所有的绿色文本?我试过谷歌搜索但是...它没有真正想出任何好的方法。 有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

可能有很多方法可以做到这一点,但是......

你需要获得对支持StyleDocument的{​​{1}}的引用,从给定的字符位置开始,你需要检查给定颜色的字符属性,如果{{1}继续写文本字符,否则你就完成了。

JTextPane

这个简单示例找到第一个用红色标记的单词,但你可以轻松地遍历整个文档并找到你想要的所有单词......