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, 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);
}
}
Related examples in the same category