-1

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

    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.

例如,如果用户在“hello world”中突出显示/选择“o worl”,则只有“o worl”将变为黑色,字体字母将为 Arial。

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

4

1 回答 1

0

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

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

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

于 2016-09-16T04:55:48.553 回答