更新AbstractDocument中嵌入的组件的属性

时间:2011-09-26 20:57:48

标签: java swing

我正在将一个组件插入到AbstractDocument中,如下面的代码所示。

final MutableAttributeSet aS = new SimpleAttributeSet();
aS.addAttribute(Utils.STYLE_ATTRIBUTE, attributeValue);
Component myComponent = new MyComponent();
myComponent.addMouseListener(l);
StyleConstants.setComponent(aS, myComponent);

insertString(caretPosition, REPLACEMENT_CHARACTER, aS);

请注意,我还在为此组件添加鼠标侦听器。当用户双击文档中嵌入的组件时,我希望将文档中关联属性集中Utils.STYLE_ATTRIBUTE属性的值更改为新值。

我该怎么做?如何获取此属性集的句柄或包含属性集的元素?

1 个答案:

答案 0 :(得分:2)

您可以在mouseListener中获取组件的边界(使用e.getSource())。然后使用JEditorPane的viewToModel()方法在Document中获取边界位置的偏移量。然后从Document的结构中获取叶元素(字符元素)并更改样式。