public Test() {
button = new JButton("Past");
button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
this.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 取得系统剪贴板里可传输的数据构造的Java对象
Transferable t = Toolkit.getDefaultToolkit()
.getSystemClipboard().getContents(null);
try {
if (t != null
&& t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
// 因为原系的剪贴板里有多种信息, 如文字, 图片, 文件等
// 先判断开始取得的可传输的数据是不是文字, 如果是, 取得这些文字
String s = (String) t
.getTransferData(DataFlavor.stringFlavor);
// 同样, 因为Transferable中的DataFlavor是多种类型的,
// 所以传入DataFlavor这个参数, 指定要取得哪种类型的Data.
System.out.println(s);
}
} catch (UnsupportedFlavorException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
}
关键信息:
getSystemClipboard().getContents(null);
Transferable, DataFlavor, DataFlavor.stringFlavor
getTransferData
isDataFlavorSupported
getTransferData