java将一个文件复制到剪切板

Python026

java将一个文件复制到剪切板,第1张

首先要明白 “剪切板” 里面能放什么内容。 剪切板只能放 “文本内容”或者“文件路径”, 如果你选中文字,然后复制,那么放在剪切板就是文字内容;如果你选择一个文件,复制,那放在剪切板里面是 文件的路径。

你说的 文件复制到剪切板 是不合理的。

Java 通过 java.awt.datatransfer.Clipboard 访问剪切板。

要用到java.awt.datatransfer包中的Clipboard类

import java.awt.*import java.awt.event.*

import java.awt.datatransfer.*

public class Test extends Frame implements ActionListener

{ MenuBar menubar Menu menu

MenuItem copy,cut,paste

TextArea text1,text2

Clipboard clipboard=null

Test()

{ clipboard=getToolkit().getSystemClipboard()//获取系统剪贴板

menubar=new MenuBar()

menu=new Menu("Edit")copy=new MenuItem("copy")

cut=new MenuItem ("cut")paste=new MenuItem ("paste")

text1=new TextArea(20,20) text2=new TextArea(20,20)

copy.addActionListener(this) cut.addActionListener(this)

paste.addActionListener(this)

setLayout(new FlowLayout())

menubar.add(menu)

menu.add(copy)menu.add(cut) menu.add(paste)

setMenuBar(menubar)

add(text1)add(text2)

setBounds(100,100,200,250) setVisible(true)pack()

addWindowListener(new WindowAdapter()

{public void windowClosing(WindowEvent e)

{System.exit(0)

}

})

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==copy) //拷贝到剪贴板。

{ String temp=text1.getSelectedText()//拖动鼠标选取文本。

StringSelection text=new StringSelection(temp)

clipboard.setContents(text,null)

}

else if(e.getSource()==cut) //剪贴到剪贴板。

{ String temp=text1.getSelectedText() //拖动鼠标选取文本。

StringSelection text=new StringSelection(temp)

clipboard.setContents(text,null)

int start=text1.getSelectionStart()

int end =text1.getSelectionEnd()

text1.replaceRange("",start,end) //从Text1中删除被选取的文本。

}

else if(e.getSource()==paste) //从剪贴板粘贴数据。

{ Transferable contents=clipboard.getContents(this)

DataFlavor flavor= DataFlavor.stringFlavor

if( contents.isDataFlavorSupported(flavor))

try{ String str

str=(String)contents.getTransferData(flavor)

text2.append(str)

}

catch(Exception ee){}

}

}

public static void main(String args[])

{ Test win=new Test()

}

}