我使用Swing创建了一个带有文本区域(JTextArea)的应用程序。我想创建一个"编辑"菜单,其中包括从文本区域剪切和复制文本以及从剪贴板粘贴到文本区域的选项。
我看到了一些实现方法,但我想知道最佳的方法是什么。如何实现剪切/复制/粘贴?
我使用Swing创建了一个带有文本区域(JTextArea)的应用程序。我想创建一个"编辑"菜单,其中包括从文本区域剪切和复制文本以及从剪贴板粘贴到文本区域的选项。
我看到了一些实现方法,但我想知道最佳的方法是什么。如何实现剪切/复制/粘贴?
我个人会选择重复使用标准的剪切、复制和粘贴操作。这在Swing拖放教程:添加剪切、复制和粘贴中都有详细解释。关于文本组件部分对你来说最相关。以下是该页面的一些代码示例:
menuItem = new JMenuItem(new DefaultEditorKit.CopyAction());
menuItem.setText("Copy");
menuItem.setMnemonic(KeyEvent.VK_C);
DefaultEditorKit.CopyAction()
附加到 JTextPane
上? - posdefStringSelection ss = new StringSelection(textarea.getText());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,this);
Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(this);
try {
if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
String text = (String)t.getTransferData(DataFlavor.stringFlavor);
return text;
}
} catch (UnsupportedFlavorException e) {
} catch (IOException e) {
}
return null;