最近我一直在使用样式常量,样式文档和文本窗格。我知道你可以编辑你突出显示的文本的一部分/选择在下面的代码中显示它
StyledDocument doc = this.tpText.getStyledDocument();
Style style = this.tpText.addStyle("stylish", null);
StyleConstants.setForeground(style, color.BLACK);
StyleConstants.setFontFamily(style, "Arial");
doc.setCharacterAttributes(this.tpText.getSelectionStart(), this.tpText.getSelectionEnd() - this.tpText.getSelectionStart(), this.tpText.getStyle("stylish"), true);//This is the piece of code (last line) that will set all the attributes to the highlited text.
例如,如果用户突出显示/选择" o worl"在"你好世界",只是" o worl"将更改为黑色,字体字母将为Arial。
现在,我的问题是:如何从高级/选定的文本中获取字体字母和颜色?我想知道如何在单独的变量中保存它(一个用于颜色,另一个用于字体字母)。
答案 0 :(得分:0)
好的,经过更多的研究,我找到了答案。
doc = this.tpText.getStyledDocument();
Element element = doc.getCharacterElement(this.tpText.getSelectionStart());
AttributeSet as = element.getAttributes();
colour = StyleConstants.getForeground(as);
我看到这个Style Constant方法的唯一缺点是它只识别第一个字符属性并覆盖/忽略其他字符属性。也许有一个循环,我可以做到。