/////// ClipToFile.java /////// import java.applet.Applet; import java.awt.*; import java.io.*; import java.awt.event.*; import java.awt.datatransfer.*; /** Pastes from the system clipboard to a TextArea, allows editing and saving to the end of an existing database file */ // uses platform dependent line separator public class ClipToFile extends Applet { public void init() { sysClip = getToolkit().getSystemClipboard(); Button pb = new Button(" Paste "); Button sv = new Button(" Save "); receiver = new TextArea(10, 70); add(receiver); add(pb); add(sv); filename = getParameter("FILENAME"); StringWriter str = new StringWriter(); BufferedWriter w = new BufferedWriter(str); try { w.newLine(); w.flush(); } catch ( IOException e) { } endl = str.toString(); // platform line separator System.out.println("length = " + endl.length() ); pb.addActionListener(new PasteHandler()); sv.addActionListener(new SaveHandler()); } private final class PasteHandler implements ActionListener { public void actionPerformed(ActionEvent ev) { Transferable content = sysClip.getContents(this); if ( content != null && content.isDataFlavorSupported(DataFlavor.stringFlavor) ) { try { String s =(String) content.getTransferData (DataFlavor.stringFlavor); receiver.append(s + endl); } catch ( IOException e ) { e.printStackTrace(); } catch ( UnsupportedFlavorException e ) { } } } } private final class SaveHandler implements ActionListener { public void actionPerformed(ActionEvent ev) { try { PrintWriter out = new PrintWriter (new BufferedWriter(new FileWriter(filename, true))); out.print(receiver.getText()); out.close(); } catch ( IOException e) { System.err.println("Save Failed: " + e.getMessage()); } } } protected String endl; protected String filename; protected TextArea receiver; protected Clipboard sysClip; }