Java tutorial
/* 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); } }