java简单实现复制 粘贴 剪切功能代码分享
废话不多说,直接上代码,小伙伴们仔细看下注释吧。
/*简单的复制剪切粘贴功能 操作: 复制测试:输入文本选择文本,点击复制,然后将光标放在右边的TextArea,点击粘贴 剪切测试:输入文本选择文本,然后将光标放在右边的TextArea,点击剪切 */ importjavax.swing.*; importjava.awt.*; importjava.awt.datatransfer.*; importjava.awt.event.*; publicclassDemoimplementsActionListener { privateJFramejf; privateJPanelp1,p2,p3; //上中下 privateJLabeltitle; privateJTextAreaedit,showMsg; privateJButtoncopy,paste,cut; Clipboardclipboard;//获取系统剪贴板。 publicDemo() { this.init(); } //界面初始化 publicvoidinit() { jf=newJFrame("复制粘贴"); p1=newJPanel(); //存放标题 p2=newJPanel(); //存放JTextAreashowMsg p3=newJPanel(); //存放button title=newJLabel("复制粘贴剪切演示"); edit=newJTextArea("请输入内容",15,25); edit.setLineWrap(true); showMsg=newJTextArea(15,25); showMsg.setLineWrap(true); showMsg.setEnabled(false); copy=newJButton("复制"); paste=newJButton("粘贴"); cut=newJButton("剪切"); clipboard=jf.getToolkit().getSystemClipboard(); p1.setLayout(newFlowLayout()); p1.setSize(599,30); p1.add(title); p2.setLayout(newFlowLayout()); p2.setBackground(Color.gray); p2.add(edit); p2.add(showMsg); p3.setLayout(newFlowLayout()); p3.add(copy); p3.add(paste); p3.add(cut); //添加事件监听机制 copy.addActionListener(this); paste.addActionListener(this); cut.addActionListener(this); //this.copyStr(copy); jf.add(p1,BorderLayout.NORTH); jf.add(p2,BorderLayout.CENTER); jf.add(p3,BorderLayout.SOUTH); jf.setLocation(400,200); jf.setSize(600,450); jf.setResizable(false); jf.setVisible(true); } //事件处理 publicvoidactionPerformed(ActionEvente) { if(e.getSource()==copy) { StringtempText=edit.getSelectedText(); //拖动鼠标选取文本 //创建能传输指定String的Transferable。 StringSelectioneditText= newStringSelection(tempText); /** 将剪贴板的当前内容设置到指定的transferable对象, 并将指定的剪贴板所有者作为新内容的所有者注册。 */ clipboard.setContents(editText,null); }elseif(e.getSource()==cut) { StringtempText=edit.getSelectedText(); StringSelectioneditText= newStringSelection(tempText); clipboard.setContents(editText,null); intstart=edit.getSelectionStart(); intend =edit.getSelectionEnd(); showMsg.replaceRange("",start,end);//从Text1中删除被选取的文本。 }elseif(e.getSource()==paste) { Transferablecontents=clipboard.getContents(this); DataFlavor flavor=DataFlavor.stringFlavor; if(contents.isDataFlavorSupported(flavor)) { try { Stringstr; str=(String)contents.getTransferData(flavor); showMsg.append(str); }catch(Exceptionex) { ex.printStackTrace(); } } } } publicstaticvoidmain(String[]args) { newDemo(); } }
代码很简单,使用也很方便,小伙伴们有更好的思路的话,请一定要告诉我。