import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
public class Note extends Frame implements ActionListener {
    MenuItem menuFileOpen;
    MenuItem menuFileClose;
    MenuItem menuFileSave;
    MenuItem menuFileSaveAs;
    MenuItem menuFileExit;
    MenuItem menuEditPaste;
    MenuItem menuEditCopy;
    MenuItem menuEditCut;
    FileDialog load = new FileDialog(this, "打开文件", FileDialog.LOAD);
    TextArea a = new TextArea(6, 15);    public Note() {
        load.setVisible(false);
        add(a, BorderLayout.CENTER);        MenuBar menuBar = new MenuBar();
        Menu menuFile = new Menu("File");
        menuFileExit = new MenuItem("Exit");
        menuFileOpen = new MenuItem("Open");
        menuFileClose = new MenuItem("Close");
        menuFileSave = new MenuItem("Save");
        menuFileSaveAs = new MenuItem("Save As...");        Menu menuEdit = new Menu("Edit");
        menuEditCopy = new MenuItem("Copy");
        menuEditCut = new MenuItem("Cut");
        menuEditPaste = new MenuItem("Paste");        menuFile.add(menuFileOpen);
        menuFile.add(menuFileClose);
        menuFile.add(menuFileSave);
        menuFile.add(menuFileSaveAs);
        menuFile.addSeparator();
        menuFile.add(menuFileExit);
        menuBar.add(menuFile);
        menuEdit.add(menuEditCopy);
        menuEdit.add(menuEditCut);
        menuEdit.add(menuEditPaste);
        menuBar.add(menuEdit);        menuFileExit.addActionListener(this);
        menuFileOpen.addActionListener(this);
        menuFileClose.addActionListener(this);
        menuFileSave.addActionListener(this);
        menuFileSaveAs.addActionListener(this);
        menuEditCopy.addActionListener(this);
        menuEditCut.addActionListener(this);
        menuEditPaste.addActionListener(this);        // Add action listener.for the menu button
        this.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    dispose();
                }
            });        setTitle("Writer_Panel");
        setMenuBar(menuBar);
        setSize(new Dimension(400, 300));
    }    public void actionPerformed(ActionEvent ae) {
        Clipboard clipboard = this.getToolkit().getSystemClipboard();        if(ae.getSource() == menuEditCopy) {
            String sele = a.getSelectedText();
            StringSelection stringselection = new StringSelection(sele);
            clipboard.setContents(stringselection, null);
        }        if(ae.getSource() == menuEditCut) {
            int f = a.getSelectionStart();
            int e = a.getSelectionEnd();
            String tmpstr = a.getText();
            String sele = a.getSelectedText();
            StringSelection stringselection = new StringSelection(sele);
            clipboard.setContents(stringselection, null);
            tmpstr = tmpstr.substring(0, f) + tmpstr.substring(e);
            a.setText(tmpstr);
        }        if(ae.getSource() == menuEditPaste) {
            int f = a.getSelectionStart();
            int e = a.getSelectionEnd();
            String tmpstr = a.getText();
            Transferable transferable = clipboard.getContents(this);
            DataFlavor dataflavor = DataFlavor.stringFlavor;            if(transferable.isDataFlavorSupported(dataflavor)) {
                try {
                    String sele_2 = (String)transferable.getTransferData(dataflavor);
                    tmpstr = tmpstr.substring(0, f) + sele_2 + tmpstr.substring(e);
                    a.setText(tmpstr);
                } catch(Exception ex) {
                }
            }
        }        BufferedReader in;
        File file;        if(ae.getSource() == menuFileExit) {
            System.exit(0);
            this.dispose();
        }        if(ae.getSource() == menuFileClose) {
            a.setText("");
        }        if(ae.getSource() == menuFileOpen) {
            load.setVisible(true);            String s = new String();            try {
                file = new File(load.getDirectory(), load.getFile());                FileReader file_reader = new FileReader(file);
                in = new BufferedReader(file_reader);                while((s = in.readLine()) != null) {
                    a.append(s + '\n');
                }                in.close();
                file_reader.close();
            } catch(Exception ex) {
            }
        }
    }    public static void main(String args[]) {
        Note frame = new Note();
        frame.setVisible(true);
    }
}