我正在将一个组件插入到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属性的值更改为新值。
我该怎么做?如何获取此属性集的句柄或包含属性集的元素?
答案 0 :(得分:2)
您可以在mouseListener中获取组件的边界(使用e.getSource())。然后使用JEditorPane的viewToModel()方法在Document中获取边界位置的偏移量。然后从Document的结构中获取叶元素(字符元素)并更改样式。