All pastes #793092 Raw Edit

Untitled

public text v1 · immutable
·published 2007-11-21 23:00 UTC
rendered paste body
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.FlavorEvent;
import java.awt.datatransfer.FlavorListener;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.TrayIcon;
 
import java.io.IOException;
 
 
public class JClipboard {
    
    private Clipboard systemClipboard;
    
    
    public JClipboard(final TrayIcon ti) {
        // Get system clipboard
        systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        
        systemClipboard.addFlavorListener(new FlavorListener() {
            public void flavorsChanged(FlavorEvent e) {
                System.out.println(e);
                Clipboard clipboard = (Clipboard)e.getSource();
                
                try {
                    Transferable content = clipboard.getContents(this);
                    if (content == null) {
                        System.out.println("Content is empty!");
                        return;
                    }
                    if (!content.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                        System.out.println("StringFlavor not supported!");
                        return;
                    }
                    try {
                        String data = (String)content.getTransferData(DataFlavor.stringFlavor);
                        ti.displayMessage("Clipboard Activity", 
				                data,
				                TrayIcon.MessageType.INFO);
                        
                    } catch (UnsupportedFlavorException ex) {
                        ex.printStackTrace();
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                } catch (IllegalStateException ex) {
                    ex.printStackTrace();
                }
            }
        });
    }
}