Kurohide's Secret Hideout

Java Read and Copy to System Clipboard

Posted in Information Tech, Java by kurohide on 16/02/2011

Beberapa hari yang lalu diproject saya kebetulan membutuhkan fitur hasil proses program berupa String akan di-copy to system Clipboard, jadinya iseng2 browsing bentar dapatlah contoh  implementasi code nya di Java (itulah enaknya Java, sebagai salah satu General Purpose Programming Language yang mainstream dan cukup berumur, banyaknya dokumentasi yang tersedia sangat membantu :D ). Tujuannya cukup sederhana saja, yaitu copy sesuatu nilai (String)  ke system Clipboard atau membaca nilai System Clipboard saat itu, jadi seperti kalau kita Ctrl + C (copy) & Ctrl + V (paste). Ok langsung saja, inilah contoh code nya :

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.Toolkit;
import java.io.*;

public class FunctionClipboard implements ClipboardOwner{

   public void setClipboardContents(String aString) {
      StringSelection stringSelection = new StringSelection(aString);
      Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
      clipboard.setContents(stringSelection, this);
   }

   public String getClipboardContents() {
      String result = "";
      Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
      Transferable contents = clipboard.getContents(null);
      boolean hasTransferableText =
              (contents != null)
              && contents.isDataFlavorSupported(DataFlavor.stringFlavor);
      if (hasTransferableText) {
         try {
            result = (String) contents.getTransferData(DataFlavor.stringFlavor);
         } catch (UnsupportedFlavorException ex) {
            System.out.println(ex);
            ex.printStackTrace();
         } catch (IOException ex) {
            System.out.println(ex);
            ex.printStackTrace();
         }
      }
      return result;
   }

   public void lostOwnership(Clipboard clipboard, Transferable contents) {
   }
}

Untuk pemakaian instance object baru atas class ini, kemudian telah disediakan method/function setter & getternya, apabila akan men-copy nilai ke system Clipboard, tinggal :

	setClipboardContents("input Hello World ke Clipboard");

Untuk membaca nilai System Clipboard saat ini tinggal :

	getClipboardContents()

Semoga bermanfaat :D

 

Advertisement
Tagged with: ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.