如何从HTMLEditorKit获取特定操作?

kay*_*ahr 2 java swing jeditorpane htmleditorkit

我想创建一个简单的测试应用程序,其中JEdi​​torPane显示一些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");
Run Code Online (Sandbox Code Playgroud)

但我很确定有什么不对劲.我无法相信我必须创建这个辅助映射来按名称获取操作.我发现用于检索动作的唯一官方方法似乎是JEdi​​torPane的getActions()方法,它只返回一个数组.

那么是否有更好的方法从a获取特定的操作EditorKit,我只是错过了它或者它只是糟糕的API设计?

Sta*_*avL 5

为什么要填写自己的地图?

editor.getActionMap().allKeys()
editor.getActionMap().get("font-bold")
Run Code Online (Sandbox Code Playgroud)