CCP 中的文本组件
原文: https://docs.oracle.com/javase/tutorial/uiswing/dnd/textpaste.html
如果您使用其中一个 Swing 文本组件(文本字段,密码字段,格式化文本字段或文本区域)实现剪切,复制和粘贴,则您的工作非常简单。这些文本组件使用 DefaultEditorKit ,它提供剪切,复制和粘贴的内置操作。默认编辑器工具包还处理记住最后具有焦点的组件的工作。这意味着如果用户使用菜单或等效键盘启动其中一个操作,则正确的组件将接收操作 - 无需其他代码。
以下演示TextCutPaste包含三个文本字段。正如您在屏幕截图中看到的那样,您可以剪切,复制和粘贴任何这些文本字段。他们还支持拖放。

Try this:
单击启动按钮以使用 Java™Web Start (下载 JDK 7 或更高版本)运行
TextCutPaste。或者,要自己编译并运行示例,请参考示例索引。
在其中一个文本字段中选择文本。使用“编辑”菜单或等效键盘剪切或复制源中的文本。
- 将插入符号放在要粘贴文本的位置。
- 使用菜单或等效的键盘粘贴文本。
- 使用拖放操作执行相同的操作。
下面是通过将DefaultEditorKit中定义的内置剪切,复制和粘贴操作连接到菜单项来创建“编辑”菜单的代码。这适用于任何来自JComponent的组件:
/*** Create an Edit menu to support cut/copy/paste.*/public JMenuBar createMenuBar () {JMenuItem menuItem = null;JMenuBar menuBar = new JMenuBar();JMenu mainMenu = new JMenu("Edit");mainMenu.setMnemonic(KeyEvent.VK_E);menuItem = new JMenuItem(new DefaultEditorKit.CutAction());menuItem.setText("Cut");menuItem.setMnemonic(KeyEvent.VK_T);mainMenu.add(menuItem);menuItem = new JMenuItem(new DefaultEditorKit.CopyAction());menuItem.setText("Copy");menuItem.setMnemonic(KeyEvent.VK_C);mainMenu.add(menuItem);menuItem = new JMenuItem(new DefaultEditorKit.PasteAction());menuItem.setText("Paste");menuItem.setMnemonic(KeyEvent.VK_P);mainMenu.add(menuItem);menuBar.add(mainMenu);return menuBar;}
接下来,我们将看看如何使用没有DefaultEditorKit内置支持的组件来实现相同的功能。
