从样式文档/文本窗格中获取字体字母和颜色

时间:2016-09-16 04:07:15

标签: java netbeans styleddocument

最近我一直在使用样式常量,样式文档和文本窗格。我知道你可以编辑你突出显示的文本的一部分/选择在下面的代码中显示它

    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。

现在,我的问题是:如何从高级/选定的文本中获取字体字母和颜色?我想知道如何在单独的变量中保存它(一个用于颜色,另一个用于字体字母)。

1 个答案:

答案 0 :(得分:0)

好的,经过更多的研究,我找到了答案。

doc = this.tpText.getStyledDocument();
    Element element = doc.getCharacterElement(this.tpText.getSelectionStart());
    AttributeSet as = element.getAttributes();
    colour = StyleConstants.getForeground(as);

我看到这个Style Constant方法的唯一缺点是它只识别第一个字符属性并覆盖/忽略其他字符属性。也许有一个循环,我可以做到。