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();
}
}
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();
}
}
错误全部改出来了,功能自己去完善~