我正在处理一个给我的旧项目,它目前使用java swing并且有一个基本的gui。它有一个ColorPane,可以扩展Jtextpane以更改所选文本的颜色。
它使用了这种方法
public void changeSelectedColor(Color c) {
changeTextAtPosition(c, this.getSelectionStart(), this.getSelectionEnd());
}
假设string =“Hello World!”你好颜色是绿色世界是黑色。如何根据Jtextpane的颜色获取Hello out。我已经尝试了笨重的方式,只是存储选定的单词,因为我改变了颜色,但有没有办法,我可以一次抓住所有的绿色文本?我试过谷歌搜索但是...它没有真正想出任何好的方法。 有人能指出我正确的方向吗?
答案 0 :(得分:2)
可能有很多方法可以做到这一点,但是......
你需要获得对支持StyleDocument
的{{1}}的引用,从给定的字符位置开始,你需要检查给定颜色的字符属性,如果{{1}继续写文本字符,否则你就完成了。
JTextPane
这个简单示例找到第一个用红色标记的单词,但你可以轻松地遍历整个文档并找到你想要的所有单词......