import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class ClipBoard
{
public static void main(String[] args)
{
new MyFrame();
}
}
class MyFrame extends JFrame
{
private JTextArea textArea;
private JPopupMenu popupMenu;
public MyFrame()
{

textArea=new JTextArea(10,20);
popupMenu=new JPopupMenu();
JMenuItem menu1=new JMenuItem("copy");
JMenuItem menu2=new JMenuItem("paste");
menu1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
copy();
}
});
menu2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
paste();
}
});
popupMenu.add(menu1);
popupMenu.add(menu2);
textArea.addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
if(e.isPopupTrigger())
{
popupMenu.show(e.getComponent(),e.getX(),e.getY());
}
}

});
Container c=this.getContentPane();
c.setLayout(new FlowLayout());
c.add(textArea);
this.setSize(300,300);
this.show();
}
private void copy()
   {  
      Clipboard clipboard= Toolkit.getDefaultToolkit().getSystemClipboard();
      String text = textArea.getSelectedText();
      if (text == null)
           text = textArea.getText();
      StringSelection selection = new StringSelection(text);
      clipboard.setContents(selection, null);
   }
   private void paste()
   {  
      Clipboard clipboard= Toolkit.getDefaultToolkit().getSystemClipboard();
      Transferable contents = clipboard.getContents(this);
      if (contents == null) return;
      DataFlavor flavor = DataFlavor.stringFlavor;
      if (contents.isDataFlavorSupported(flavor))
      {
         try
         {  
            String text = (String)(contents.getTransferData(flavor));
            textArea.replaceSelection(text);
         }
         catch(UnsupportedFlavorException exception)
         {  
            JOptionPane.showMessageDialog(this, exception);
         }
         catch(IOException exception)
         {  
            JOptionPane.showMessageDialog(this, exception);
         }
      }
   }
}