import java.lang.*;
import java.awt.*;
import java.io.*;
import java.awt.datatremsfer.*;
import java.awt.event.*;
public class EditorFrame extends Frame implements ActionListener{
TextArea textArea = new TextArea();//编辑文本
MenuBar menuBar = new MenuBar();//菜单栏

  /*"文件“下拉菜单中的“新建”,“打开”,“保存”,“另存为”和“推出”等选项*/
Menu fileMenu = new Menu( "File" );
MenuItem newItem = new MenuItem( "New" );
MenuItem openItem = new MenuItem( "Open" );
MenuItem saveItem = new MenuItem( "Save" );
MenuItem saveAsItem = new MenuItem( "Save As" );
MenuItem exitItem = new MenuItem( "Exite" );

/*“编辑”菜单,以及“全选”,“复制”,“剪切”,“粘贴”等选项*/
Menu editMenu = new MenuItem( "Select All" );
MenuItem selectItem = new MenuItem( "Select All" );
MenuItem copyItem = new MenuItem( "Copy" );
MenuItem cutItem = new MenuItem( "Cut" );
MenuItem pasteItem = new MenuItem( "Paste" );
String fileName = "No Name";//设置默认文件名
Toolkit toolKit = Toolkit.getDefaultToolkit();
Clipboard clipBoard = toolKit.getSystemClipboard();//剪贴板对象

/*打开文件对话框和保存文件对话框*/
private FileDialog openFileDialog = new FileDialog( this , "Open File" , FileDialog.LAOD);
private FileDialog saveAsFileDialog = new FileDialog( this , "Save File As" , FileDialog.SAVE);
public EditorFrame(){
setTitle("Note Pad");
setFont(new Font("Times New Toman" , Font.PLAIN , 12));
sstBackground(Color.white);
setSize(400,300);

/*在窗口中添加菜单栏*/
fileMenu.add( newItem );
fileMenu.add( openItem );
fileMenu.addSeparator();
fileMenu.add( saveItem );
fileMenu.add( saveAsItem );
fileMenu.addSeparator();
fileMenu.add( exitItem );
editMenu.add( selectItem );
editMenu.addSeparator();
editMenu.add( copyItem );
editMenu.add( cutItem );
editMenu.add( pasteMenu );
menuBar.add( fileMenu );
menuBar.add( editMenu );
setMenuBar(enuBar);
add( textArea );
addWindowListener( new WindowAdaper(){
//指定窗口推出方式
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

//注册各个菜单的事件监听器
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveAsItem.addActionListener(this);
exitItem.addActionListener(this);
selectItem.addActionListener(this);
copyItem.addActionListener(this);
cutItem.addActionListener(this);
pasteItem.addActionListener(this);
}
public void actionPerformed (ActionEvent e){
Object eventSourse = e.getSource();//利用事件源判断被单击菜单项
if(eventSource == newItem){
textArea.setText(" ");//新建时清空文本区
}else if(eventSource == openItem){
openFileDialog.show();//显示打开文件对话框
fileName = openFileDialog.getDirectory() + openFileDialog.getFile();
if(fileName != null)
readFile(fileName);
}else if(eventSource == saveItem){
if(fileName != null)
writeFile(fileName);
}else if(eventSource == saveAsItem){
saveAsFileDialog.show();//显示保存文件对话框
fileName = saveFileDialog.getDirectory() + saveAsFileDialog.getFile();
if(fileName != null)
writeFile(fileName);
}else if(eventSource == selectItem){
textArea.selectAll();//全选
}else if(eventSource == copyItem){
String text = textArea.getSelectedText();//复制
String selection = new StringSelection(text);
clipBoard.setContents(selection , null);
//剪切时用空字符串代替备选字符
textArea.replaceRange(" " , textArea.getSelectionStart() , textArea.getSelectionEnd());
}else if(eventSource == pasteItem){
Transferable contents  = clipBoard.getContents(this);
if(contents == null) return;
String text;
text = " ";
try{
text = (String)contents.getTransferData(DataFlavor.stringFlavor);
}catch (Exception exception){
   textArea.replaceRange(text , textArea.getSelectionStart() , textArea.getSelectionEnd());
 }
}else if(eventSource == exitItem){
System.exit(0);
}
}
public void readFile(String fileName){
//读文件
try{
File file = newFile(fileName);
FileReader redIn = new FileReader(file);
int size = (int)file.length();
int charRead = 0;
char[] content = new char[size];
while(readIn.ready())
charsRead += readIn.read(content , charsread , size.charsRead);
readIn.close();
textArea.setText(new String(content , 0 , charsread));
}
catch (IOException e){
System.out.println("Error opening file");
}
}
public void writeFile(String fileName){
//写文件
try{
File file = new File(fileName);
FileWriter writeOut = new FileWriter(file);
writerOut.write(textArea.getText());
writeOut.close();
}
catch (IOException e){
System.out.println("Error writing file");
}
}
public static void main(String[] args){
Frame frame = new EditorFrame();
frame.show();
}
}

解决方案 »

  1.   

    import java.awt.*;
    import java.io.*;
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.DataFlavor;
    import java.awt.datatransfer.StringSelection;
    import java.awt.datatransfer.Transferable;
    import java.awt.event.*;public class EditorFrame extends Frame implements ActionListener {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    TextArea textArea = new TextArea();// 编辑文本
    MenuBar menuBar = new MenuBar();// 菜单栏 /* "文件“下拉菜单中的“新建”,“打开”,“保存”,“另存为”和“推出”等选项 */
    Menu fileMenu = new Menu("File");
    MenuItem newItem = new MenuItem("New");
    MenuItem openItem = new MenuItem("Open");
    MenuItem saveItem = new MenuItem("Save");
    MenuItem saveAsItem = new MenuItem("Save As");
    MenuItem exitItem = new MenuItem("Exite"); /* “编辑”菜单,以及“全选”,“复制”,“剪切”,“粘贴”等选项 */
    Menu editMenu = new Menu("Select All");
    MenuItem selectItem = new MenuItem("Select All");
    MenuItem copyItem = new MenuItem("Copy");
    MenuItem cutItem = new MenuItem("Cut");
    MenuItem pasteItem = new MenuItem("Paste");
    String fileName = "No Name";// 设置默认文件名
    Toolkit toolKit = Toolkit.getDefaultToolkit();
    Clipboard clipBoard = toolKit.getSystemClipboard();// 剪贴板对象 /* 打开文件对话框和保存文件对话框 */
    private FileDialog openFileDialog = new FileDialog(this, "Open File",
    FileDialog.LOAD);
    private FileDialog saveAsFileDialog = new FileDialog(this, "Save File As",
    FileDialog.SAVE); public EditorFrame() {
    setTitle("Note Pad");
    setFont(new Font("Times New Toman", Font.PLAIN, 12));
    setBackground(Color.white);
    setSize(400, 300); /* 在窗口中添加菜单栏 */
    fileMenu.add(newItem);
    fileMenu.add(openItem);
    fileMenu.addSeparator();
    fileMenu.add(saveItem);
    fileMenu.add(saveAsItem);
    fileMenu.addSeparator();
    fileMenu.add(exitItem);
    editMenu.add(selectItem);
    editMenu.addSeparator();
    editMenu.add(copyItem);
    editMenu.add(cutItem);
    editMenu.add(pasteItem);
    menuBar.add(fileMenu);
    menuBar.add(editMenu);
    setMenuBar(menuBar);
    add(textArea);
    addWindowListener(new WindowAdapter() {
    // 指定窗口推出方式
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    }); // 注册各个菜单的事件监听器
    newItem.addActionListener(this);
    openItem.addActionListener(this);
    saveItem.addActionListener(this);
    saveAsItem.addActionListener(this);
    exitItem.addActionListener(this);
    selectItem.addActionListener(this);
    copyItem.addActionListener(this);
    cutItem.addActionListener(this);
    pasteItem.addActionListener(this);
    } public void actionPerformed(ActionEvent e) {
    Object eventSourse = e.getSource();// 利用事件源判断被单击菜单项
    if (eventSourse == newItem) {
    textArea.setText(" ");// 新建时清空文本区
    } else if (eventSourse == openItem) {
    openFileDialog.show();// 显示打开文件对话框
    fileName = openFileDialog.getDirectory() + openFileDialog.getFile();
    if (fileName != null)
    readFile(fileName);
    } else if (eventSourse == saveItem) {
    if (fileName != null)
    writeFile(fileName);
    } else if (eventSourse == saveAsItem) {
    saveAsFileDialog.show();// 显示保存文件对话框
    fileName = saveAsFileDialog.getDirectory()
    + saveAsFileDialog.getFile();
    if (fileName != null)
    writeFile(fileName);
    } else if (eventSourse == selectItem) {
    textArea.selectAll();// 全选
    } else if (eventSourse == copyItem) {
    String text = textArea.getSelectedText();// 复制
    StringSelection selection = new StringSelection(text);
    clipBoard.setContents(selection, null);
    // 剪切时用空字符串代替备选字符
    textArea.replaceRange(" ", textArea.getSelectionStart(), textArea
    .getSelectionEnd());
    } else if (eventSourse == pasteItem) {
    Transferable contents = clipBoard.getContents(this);
    if (contents == null)
    return;
    String text;
    text = " ";
    try {
    text = (String) contents
    .getTransferData(DataFlavor.stringFlavor);
    } catch (Exception exception) {
    textArea.replaceRange(text, textArea.getSelectionStart(),
    textArea.getSelectionEnd());
    }
    } else if (eventSourse == exitItem) {
    System.exit(0);
    }
    } public void readFile(String fileName) {
    // 读文件
    try {
    File file = new File(fileName);
    FileReader readIn = new FileReader(file);
    int size = (int) file.length();
    int charsRead = 0;
    char[] content = new char[size];
    while (readIn.ready())
    charsRead += readIn.read(content, charsRead, size);
    readIn.close();
    textArea.setText(new String(content, 0, charsRead));
    } catch (IOException e) {
    System.out.println("Error opening file");
    }
    } public void writeFile(String fileName) {
    // 写文件
    try {
    File file = new File(fileName);
    FileWriter writeOut = new FileWriter(file);
    writeOut.write(textArea.getText());
    writeOut.close();
    } catch (IOException e) {
    System.out.println("Error writing file");
    }
    } public static void main(String[] args) {
    Frame frame = new EditorFrame();
    frame.show();
    }
    }
    错误全部改出来了,功能自己去完善~