Обновление атрибута компонента, встроенного в AbstractDocument - PullRequest
0 голосов
/ 27 сентября 2011

Я вставляю компонент в 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 Ответ

2 голосов
/ 27 сентября 2011

Вы можете получить границы компонента в mouseListener (используйте e.getSource ()). Затем используйте метод viewToModel () JEditorPane, чтобы получить смещение в документе для позиции границ. Затем получите элемент Element (символьный элемент) из структуры документа и измените стиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...