Cut and Paste Unicode
From Java Example Source Code
Contents |
[edit] Overview - Cut and Paste Unicode
This Java program shows how to cut and paste Unicode in Java GUI.
[edit] Java Source Code
- Package: oreilly
- File: CutAndPasteDemo.java
package oreilly; /* 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.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextArea; 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); } }
[edit] What Result You Can Get
Run the program, you will get:
[edit] Required External Libraries and/or Files for this Java Example
Need nothing.
[edit] How to Run this Java Example Program
We recommend running this Java example program with Eclipse.
For assistance in working with Eclipse, please see How to Run Java Program with Eclipse.
It's fairly easy.
[edit] Question & Answer
Any question?
Click edit and post your question or answer here.
