我想创建一个简单的测试应用程序,其中包含一个显示一些超文本标记语言内容的JEditorPane和一个将所选文本设置为粗体的按钮。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");但我很确定一定是出了什么问题。我不敢相信我必须创建这个辅助地图才能按名称获取操作。我找到的唯一用于检索操作的官方方法似乎是JEditorPane的这个getActions()方法,它只返回一个数组。
那么,有没有更好的方法来从EditorKit中获取特定的操作,而我只是错过了它,或者它只是糟糕的API设计?
发布于 2011-12-09 18:28:37
为什么你要填写你自己的地图?
editor.getActionMap().allKeys()
editor.getActionMap().get("font-bold")https://stackoverflow.com/questions/8443745
复制相似问题