如何使用TextAction

从AbstractAction使用TextAction的目的是什么? 以及如何将其用于以下内容:

  • 插入符号

  • 在JTextComponents中的选择

  • 键绑定

在撰写这个答案时 ,我回忆起Charles Bell的一个古老的HTMLDocumentEditor ,它说明了javax.swing.text.TextAction中的子类的典型用法。 该编辑器列在Metaphase Editor的学分中。 显示StyledEditorKit操作的相关示例遵循相同的方法。 所有这些操作都适用于键绑定 ,并且只要可能,所有这些操作都将根据Caret维护的当前选择进行操作。

来自Java Swing第2版 :

所有文本组件共享一组默认操作。 默认情况下,每个Actions都是TextAction的实例。 JTextComponent提供了一个私有静态EditorKit,它由一组四个预构建的TextActions组成,这些TextActions由所有文本组件通过使用默认的Keymap实例共享。

JTextComponent维护对最近具有键盘焦点的文本组件的私有引用。 TextActions旨在利用这一点,并且在调用事件的源不是文本组件的情况下调用时,每个TextAction都将对此组件进行操作。

以下是一些实现TextAction的示例:

自定义编辑命令

寻找单词边界