import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
/**
* The Class ClipBoard.
*
* @author Varra
* @version 1.0
*/
public class ClipBoard extends JFrame implements ClipboardOwner, ActionListener
{
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
/** The dst text. */
JTextArea srcText, dstText;
/** The paste button. */
JButton copyButton, pasteButton;
/** The clipboard. */
Clipboard clipboard = getToolkit().getSystemClipboard();
/**
* Instantiates a new clip board.
*/
public ClipBoard()
{
super("Clipboard Test");
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(gridbag);
srcText = new JTextArea(8, 32);
c.gridwidth = 2;
c.anchor = GridBagConstraints.CENTER;
gridbag.setConstraints(srcText, c);
add(srcText);
copyButton = new JButton("Copy Above");
copyButton.setActionCommand("copy");
copyButton.addActionListener(this);
c.gridy = 1;
c.gridwidth = 1;
gridbag.setConstraints(copyButton, c);
add(copyButton);
pasteButton = new JButton("Paste Below");
pasteButton.setActionCommand("paste");
pasteButton.addActionListener(this);
pasteButton.setEnabled(false);
c.gridx = 1;
gridbag.setConstraints(pasteButton, c);
add(pasteButton);
dstText = new JTextArea(8, 32);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 2;
gridbag.setConstraints(dstText, c);
add(dstText);
pack();
}
/*
* (non-Javadoc)
*
* @see
* java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent evt)
{
String cmd = evt.getActionCommand();
if (cmd.equals("copy"))
{
// Implement Copy operation
String srcData = srcText.getText();
if (srcData != null)
{
StringSelection contents = new StringSelection(srcData);
clipboard.setContents(contents, this);
pasteButton.setEnabled(true);
}
}
else if (cmd.equals("paste"))
{
// Implement Paste operation
Transferable content = clipboard.getContents(this);
if (content != null)
{
try
{
String dstData = (String) content.getTransferData(DataFlavor.stringFlavor);
dstText.append(dstData);
}
catch (Exception e)
{
System.out.println("Couldn't get contents in format: "
+ DataFlavor.stringFlavor.getHumanPresentableName());
}
}
}
}
/*
* (non-Javadoc)
*
* @see
* java.awt.datatransfer.ClipboardOwner#lostOwnership(java.awt.datatransfer
* .Clipboard, java.awt.datatransfer.Transferable)
*/
public void lostOwnership(Clipboard clipboard, Transferable contents)
{
System.out.println("Clipboard contents replaced");
}
/**
* The main method.
*
* @param args
* the arguments
*/
public static void main(String[] args)
{
ClipBoard test = new ClipBoard();
test.setVisible(true);
}
}
No comments:
Post a Comment