Development Java Tutorial

// This example is from the book _Java AWT Reference_ by John Zukowski.
// Written by John Zukowski.  Copyright (c) 1997 O'Reilly & Associates.
// You may study, use, modify, and distribute this example for any purpose.
// This example is provided WITHOUT WARRANTY either expressed or
import java.awt.Button;
import java.awt.Event;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
public class ClipMe extends Frame {
  TextField tf;
  TextArea ta;
  Button copy, paste;
  Clipboard clipboard = null;
  ClipMe() {
    super("Clipping Example");
    add(tf = new TextField("Welcome"), "North");
    add(ta = new TextArea(), "Center");
    ta.setEditable(false);
    Panel p = new Panel();
    p.add(copy = new Button("Copy"));
    p.add(paste = new Button("Paste"));
    add(p, "South");
    setSize(250, 250);
  }
  public static void main(String args[]) {
    new ClipMe().show();
  }
  public boolean handleEvent(Event e) {
    if (e.id == Event.WINDOW_DESTROY) {
      System.exit(0);
      return true; // never gets here
    }
    return super.handleEvent(e);
  }
  public boolean action(Event e, Object o) {
    if (clipboard == null)
      clipboard = getToolkit().getSystemClipboard();
    if ((e.target == tf) || (e.target == copy)) {
      StringSelection data;
      data = new StringSelection(tf.getText());
      clipboard.setContents(data, data);
    } else if (e.target == paste) {
      Transferable clipData = clipboard.getContents(this);
      String s;
      try {
        s = (String) (clipData.getTransferData(DataFlavor.stringFlavor));
      } catch (Exception ee) {
        s = ee.toString();
      }
      ta.setText(s);
    }
    return true;
  }
}