package testing.clipboardmonitor;
import clipboard.monitor.ClipboardEvent;
import clipboard.monitor.ClipboardListener;
import clipboard.monitor.windows.WindowsClipboardMonitor;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
/**
* Created by IntelliJ IDEA.
* User: mateusz
* Date: 18.09.11
* Time: 19:53
* To change this template use File | Settings | File Templates.
*/
public class WindowsClipboardMonitorApp implements ClipboardListener {
public WindowsClipboardMonitorApp() throws InterruptedException {
System.out.println("Starting.");
WindowsClipboardMonitor wc = new WindowsClipboardMonitor();
wc.addListener(this);
wc.run();
}
public static void main(String[] args) throws InterruptedException {
WindowsClipboardMonitorApp wcApp = new WindowsClipboardMonitorApp();
}
public void onEvent(ClipboardEvent event) {
System.out.println("Nowa zawartosc w schowku!" + getClipboardContents());
//To change body of implemented methods use File | Settings | File Templates.
}
public String getClipboardContents() {
String result = "";
System.out.println("AAAA");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
System.out.println("ABBB");
//odd: the Object param of getContents is not currently used
Transferable contents = clipboard.getContents(null);
System.out.println("CCC");
boolean hasTransferableText =
(contents != null) &&
contents.isDataFlavorSupported(DataFlavor.stringFlavor)
;
if ( hasTransferableText ) {
try {
result = (String)contents.getTransferData(DataFlavor.stringFlavor);
}
catch (UnsupportedFlavorException ex){
//highly unlikely since we are using a standard DataFlavor
System.out.println(ex);
ex.printStackTrace();
}
catch (IOException ex) {
System.out.println(ex);
ex.printStackTrace();
}
}
return result;
}
}