Как получить конкретное действие от HTMLEditorKit? - PullRequest
2 голосов
/ 09 декабря 2011

Я хочу создать простое тестовое приложение с JEditorPane , отображающим некоторое HTML-содержимое и кнопку, которая делает выделенный текст жирным. HTMLEditorKit уже обеспечивает необходимые действия для этой кнопки, поэтому я смог использовать ее со сложным кодом, подобным этому:

// Build action map
Map<String, Action> actionMap = new HashMap<String, Action>();
for (Action action: editor.getActions())
    actionMap.put("" + action.getValue(Action.NAME), action);

// Get the action
Action action = actionMap.get("font-bold");

Но я почти уверен, что что-то не так.Я не могу поверить, что мне нужно создать эту вспомогательную карту, чтобы получить действие по имени.Единственный официальный метод поиска действий, который я нашел, - это getActions () метод JEditorPane , который просто возвращает массив.

Так что есть лучший способполучить конкретное действие от EditorKit и я просто пропустил его или это просто плохой дизайн API?

1 Ответ

5 голосов
/ 09 декабря 2011

Почему вы заполняете свою карту?

editor.getActionMap().allKeys()
editor.getActionMap().get("font-bold")
...