我早些时候问过这个问题,但也许你们中的一些人睡着了,因为我当时住的地方可能很早在硅谷。我的程序已为箭头键分配了新功能,但对于 Swing 显示器演示的最后一部分,我需要它们在 TextArea 内正常运行,移动光标等。
有没有办法恢复默认值,或者通过 AbstractAction 再次分配光标的简单移动?
我给你的原始答案显示了如何替换 Action。如果您需要恢复默认 Action,那么为 Action 创建新的 InputMap 和 ActionMap 条目可能会更容易。我给你的Key Bindings链接展示了如何做到这一点。
然后,当您需要恢复默认操作时,您可以使用:
textField.getInputMap().put(keystroke, "none");
这将导致再次搜索原始 InputMap。
另一种方法是在使用自定义 Action 更新 ActionMap 之前保存 Action。就像是:
Action original = textField.getActionMap().get(...);
重新阅读Key Bindings链接以更好地了解 InputMap 和 ActionMap 的用法。