在Java中剪切,复制和粘贴的最佳方法是什么?

我使用Swing创建了一个带有文本区域的应用程序(JTextArea)。 我想创建一个“编辑”菜单,其中包含从文本区域剪切和复制文本的选项,以及将剪贴板中的文本粘贴到文本区域。

我已经看到了几种方法,但我想知道最好的方法是什么。 我该如何实现剪切/复制/粘贴?

我个人会选择重复使用标准剪切,复制和粘贴操作。 这些都在Swing拖放教程中进行了解释:添加剪切,复制和粘贴 。 有关文本组件的部分与您最相关。 快速复制粘贴该页面的一些代码:

menuItem = new JMenuItem(new DefaultEditorKit.CopyAction()); menuItem.setText("Copy"); menuItem.setMnemonic(KeyEvent.VK_C); 

基本上,复制到剪贴板使用DefaultToolkit中的StringSelection和ClipBoard

 StringSelection 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; 

正如安德鲁指出的那样,你可以分辨出你所看到的其他方式。 如果您正在寻找从您的应用程序和其他应用程序切割/复制/粘贴,那么您必须使用系统剪贴板。 如果复制/粘贴是专门在您的应用程序中,那么您可以实现自己的创建和维护缓冲区的方法,但系统剪贴板方法将是最简单的,因为您不必重新发明轮子。