Swing JFC Java

/*
Java Internationalization
By Andy Deitsch, David Czarnecki
ISBN: 0-596-00019-7
O'Reilly
*/
/*import java.io.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
public class CutAndPasteDemo extends JFrame implements ClipboardOwner {
  private static String TEMPFILE = "CUTPASTE.TMP";
  String davidMessage = "David says, \"\u05E9\u05DC\u05D5\u05DD \u05E2\u05D5\u05DC\u05DD\" \n";
  String andyMessage = "Andy also says, \"\u05E9\u05DC\u05D5\u05DD \u05E2\u05D5\u05DC\u05DD\"";
  private Clipboard clipboard;
  public void lostOwnership(Clipboard clipboard, Transferable contents) {
    System.out.println("Lost clipboard ownership");
  }
  JTextArea textArea1;
  JTextArea textArea2;
  public CutAndPasteDemo() {
    super("Cut And Paste Demonstration");
    clipboard = getToolkit().getSystemClipboard();
    GraphicsEnvironment.getLocalGraphicsEnvironment();
    Font font = new Font("LucidaSans", Font.PLAIN, 15);
    textArea1 = new JTextArea(davidMessage + andyMessage, 5, 25);
    textArea2 = new JTextArea("", 5, 25);
    textArea1.setFont(font);
    textArea2.setFont(font);
    JPanel jPanel = new JPanel();
    JMenuBar jMenuBar = new JMenuBar();
    JMenuItem cutItem = new JMenuItem("Cut");
    JMenuItem pasteItem = new JMenuItem("Paste");
    JMenu jMenu = new JMenu("Edit");
    jMenu.add(cutItem);
    jMenu.add(pasteItem);
    cutItem.addActionListener(new CutActionListener());
    pasteItem.addActionListener(new PasteActionListener());
    jMenuBar.add(jMenu);
    jPanel.add(jMenuBar);
    jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.Y_AXIS));
    jPanel.add(textArea1);
    jPanel.add(Box.createRigidArea(new Dimension(0,10)));
    jPanel.add(textArea2);
    getContentPane().add(jPanel, BorderLayout.CENTER);
  }
  class CutActionListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
      try {
        if (textArea1.getSelectedText() != null) {
          BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(TEMPFILE), "UTF8"));
          bw.write(textArea1.getSelectedText());
          bw.close();
          textArea1.replaceSelection("");
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }
  class PasteActionListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
      try {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(TEMPFILE), "UTF8"));
        StringBuffer text = new StringBuffer();
        String tempString;
        while ((tempString = br.readLine()) != null) {
          text.append(tempString);
        }
        br.close();
        textArea2.replaceSelection(text.toString());
      } catch (Exception e) {
      }
    }
  }
  public static void main(String[] args) {
    JFrame frame = new CutAndPasteDemo();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {System.exit(0);}
    });
    frame.pack();
    frame.setVisible(true);
  }
}
*/
import java.io.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
public class CutAndPasteDemo extends JFrame implements ClipboardOwner {
  private static String TEMPFILE = "CUTPASTE.TMP";
  String davidMessage = "David says, \"\u05E9\u05DC\u05D5\u05DD" +
      "\u05E2\u05D5\u05DC\u05DD\" \n";
  String andyMessage = "Andy also says, \"\u05E9\u05DC\u05D5\u05DD" +
      "\u05E2\u05D5\u05DC\u05DD\"";
  private Clipboard clipboard;
  public void lostOwnership(Clipboard clipboard, Transferable contents) {
    System.out.println("Lost clipboard ownership");
  }
  JTextArea textArea1;
  JTextArea textArea2;
  public CutAndPasteDemo() {
    super("Cut And Paste Demonstration");
    clipboard = getToolkit().getSystemClipboard();
    GraphicsEnvironment.getLocalGraphicsEnvironment();
    Font font = new Font("LucidaSans", Font.PLAIN, 15);
    textArea1 = new JTextArea(davidMessage + andyMessage, 5, 25);
    textArea2 = new JTextArea("", 5, 25);
    textArea1.setFont(font);
    textArea2.setFont(font);
    JPanel jPanel = new JPanel();
    JMenuBar jMenuBar = new JMenuBar();
    JMenuItem cutItem = new JMenuItem("Cut");
    JMenuItem pasteItem = new JMenuItem("Paste");
    JMenu jMenu = new JMenu("Edit");
    jMenu.add(cutItem);
    jMenu.add(pasteItem);
    cutItem.addActionListener(new CutActionListener());
    pasteItem.addActionListener(new PasteActionListener());
    jMenuBar.add(jMenu);
    jPanel.add(jMenuBar);
    jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.Y_AXIS));
    jPanel.add(textArea1);
    jPanel.add(Box.createRigidArea(new Dimension(0,10)));
    jPanel.add(textArea2);
    getContentPane().add(jPanel, BorderLayout.CENTER);
  }
  class CutActionListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
      try {
        if (textArea1.getSelectedText() != null) {
          BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new
              FileOutputStream(TEMPFILE), "UTF8"));
          bw.write(textArea1.getSelectedText());
          bw.close();
          textArea1.replaceSelection("");
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }
  class PasteActionListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
      try {
        BufferedReader br = new BufferedReader(new InputStreamReader(new
            FileInputStream(TEMPFILE), "UTF8"));
        StringBuffer text = new StringBuffer();
        String tempString;
        while ((tempString = br.readLine()) != null) {
          text.append(tempString);
        }
        br.close();
        textArea2.replaceSelection(text.toString());
      } catch (Exception e) {
      }
    }
  }
  public static void main(String[] args) {
    JFrame frame = new CutAndPasteDemo();
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {System.exit(0);}
    });
    frame.pack();
    frame.setVisible(true);
  }
}