Internationalized Graphical User Interfaces: unicode cut and paste







/*

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("<Paste text here>", 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, 525);

    textArea2 = new JTextArea("<Paste text here>"525);

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

  }

}







           

       

Tags: , , , , , ,

Leave a Reply