Java – CUT&PASTE

package system.clipboard;

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;

public class ClipBoard extends JFrame implements ClipboardOwner, ActionListener
{
private static final long serialVersionUID = 1L;

JTextArea srcText, dstText;
JButton copyButton, pasteButton;
Clipboard clipboard = getToolkit().getSystemClipboard();

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();
}

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());
}
}
}
}

public void lostOwnership(Clipboard clipboard, Transferable contents)
{
System.out.println("Clipboard contents replaced");
}

public static void main(String[] args)
{
ClipBoard test = new ClipBoard();
test.setVisible(true);
}
}

source

Leave a Reply