Communicate in the System Clipboard

From Java Example Source Code

Jump to: navigation, search

Contents

[edit] Overview - Communicate in the System Clipboard

This Java program shows how to communicate in the system clipboard.

[edit] Java Source Code

  • Package: example.clipboard
  • File: ClipText.java
package example.clipboard;
 
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
public class ClipText {
    public static void main(String args[]) {
 
	JFrame frame = new JFrame();
	Container contentPane = frame.getContentPane();
 
	final Clipboard clipboard = frame.getToolkit().getSystemClipboard();
 
	final JTextArea jt = new JTextArea();
 
	JScrollPane pane = new JScrollPane(jt);
	contentPane.add(pane, BorderLayout.CENTER);
 
	JButton copy = new JButton("Copy");
	copy.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		String selection = jt.getSelectedText();
		StringSelection data = new StringSelection(selection);
		clipboard.setContents(data, data);
	    }
	});
 
	JButton paste = new JButton("Paste");
	paste.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent actionEvent) {
		Transferable clipData = clipboard.getContents(clipboard);
		if (clipData != null) {
		    try {
			if (clipData.isDataFlavorSupported(DataFlavor.stringFlavor)) {
			    String s = (String) (clipData.getTransferData(DataFlavor.stringFlavor));
			    jt.replaceSelection(s);
			}
		    } catch (UnsupportedFlavorException ufe) {
			System.err.println("Unsupported flavor: " + ufe);
		    } catch (IOException ufe) {
			System.err.println("Unable to get data: " + ufe);
		    }
		}
	    }
	});
	JPanel p = new JPanel();
	p.add(copy);
	p.add(paste);
	contentPane.add(p, BorderLayout.SOUTH);
	frame.setSize(300, 300);
	frame.show();
    }
}

[edit] What Result You Can Get

Run the program, you will get:

Image:ClipText.png

[edit] Required External Libraries and/or Files for this Java Example

Need nothing.


[edit] How to Run this Java Example Program

We recommend running this Java example program with Eclipse.

For assistance in working with Eclipse, please see How to Run Java Program with Eclipse.

It's fairly easy.



[edit] Question & Answer

Any question?

Click edit and post your question or answer here.


Personal tools