使用AbstractAction中的TextAction有什么目的?以及如何在以下情况下使用:
Caret
JTextComponents中的选择
KeyBindings
使用AbstractAction中的TextAction有什么目的?以及如何在以下情况下使用:
Caret
JTextComponents中的选择
KeyBindings
所有文本组件共享一组默认操作。这些操作默认情况下都是TextAction的实例。JTextComponent提供了一个私有静态EditorKit,其中包含一组通过默认Keymap实例与所有文本组件共享的四个预构建的TextActions。
JTextComponent维护对最近具有键盘焦点的文本组件的私有引用。TextActions旨在利用此功能,每个TextAction将在其被调用时在该组件上运行,前提是调用事件的源不是文本组件。
以下是实现TextAction的示例:
在撰写这个答案时,我想起了查尔斯·贝尔(Charles Bell)所编写的古老的HTMLDocumentEditor
,它展示了在javax.swing.text.TextAction
中找到的子类的典型用法。该编辑器列在Metaphase Editor
的制作人员名单中。这个相关的例子展示了在StyledEditorKit
中找到的操作采用相同的方法。所有这些操作都适合于键绑定,并且只要可能,都会对由Caret
维护的当前选择进行操作。