java写的记事本

[size=large][color=green]package test;

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;

import javax.swing.*;

public class EditTest {
public static void main(String[] args){
EditFrame frame = new EditFrame();
frame.setVisible(true);
}
}

class EditFrame extends Frame implements ActionListener{
MenuBar menuBar = new MenuBar();
Menu file = new Menu("File");
Menu edit = new Menu("Edit");
Menu help = new Menu("Help");
TextArea textArea = new TextArea();
String fileName = null;
MenuItem[] menuItem = {
new MenuItem("new"),
new MenuItem("open"),
new MenuItem("save"),
new MenuItem("exit"),
new MenuItem("select all"),
new MenuItem("copy"),
new MenuItem("cut"),
new MenuItem("paste")};
MenuItem helpItem = new MenuItem("help");

private FileDialog openFileDialog =
new FileDialog(this,"Open File",FileDialog.LOAD);
private FileDialog saveFileDialog =
new FileDialog(this,"Save File",FileDialog.SAVE);
private Clipboard clipboard;
public EditFrame(){
setTitle("记事本");
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension sizeScreen = kit.getScreenSize();
clipboard = kit.getSystemClipboard();
int width = sizeScreen.width;
int height = sizeScreen.height;
setSize(width/2,height/2);
setLocation(width/4,height/4);
//添加菜单
menuBar.add(file);
menuBar.add(edit);
menuBar.add(help);
for(int i = 0;i < 4;i++){
file.add(menuItem[i]);
edit.add(menuItem[i+4]);
}
help.add(helpItem);
add(textArea);
setMenuBar(menuBar);
//退出事件响应
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
e.getWindow().dispose();
System.exit(0);
}
});
for(int i = 0;i<menuItem.length;i++){
menuItem[i].addActionListener(this);
}
}
public void actionPerformed(ActionEvent e){
Object eventSourse = e.getSource();
if(eventSourse == menuItem[0]){
textArea.setText("");
}
else if(eventSourse == menuItem[1]){
openFileDialog.setVisible(true);
fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName != null)
{
openFile(fileName);
}
}
else if(eventSourse == menuItem[2]){
saveFileDialog.setVisible(true);
fileName = saveFileDialog.getDirectory()+saveFileDialog.getFile();
if(fileName!=null){
writeFile(fileName);
}
}
else if(eventSourse == menuItem[3]){
System.exit(0);
}
else if(eventSourse == menuItem[4]){
textArea.selectAll();
}
else if(eventSourse == menuItem[5]){
String text = textArea.getSelectedText();
StringSelection selection= new StringSelection(text);//copy
clipboard.setContents(selection,null);
}
else if(eventSourse == menuItem[6]){
String text = textArea.getSelectedText();
StringSelection selection = new StringSelection(text);
clipboard.setContents(selection,null); //cut
textArea.replaceText("",textArea.getSelectionStart(),
textArea.getSelectionEnd());
}
else if(eventSourse == menuItem[7]){
Transferable contents = clipboard.getContents(this);
if(contents==null)
return;
String text;
text="";
try{
text = (String)contents.getTransferData(DataFlavor.stringFlavor);

}catch(Exception ex){}
textArea.replaceText(text,
textArea.getSelectionStart(),textArea.getSelectionEnd());
}
}
public void openFile(String fileName){
//File f = new File(fileName);
try{
File file = new File(fileName);
FileReader readIn = new FileReader(file);
int size = (int)file.length();//文件的内容长度,为long型
int charsRead = 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(Exception e)
{
System.out.println("Error opening file!");
}
}

public void writeFile(String fileName){
try{
File f = new File(fileName);
FileWriter write = new FileWriter(f);
write.write(textArea.getText());
write.close();
}catch(Exception e){
System.out.println("Erroe saving file!");
}
}


}[/color][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值