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