Java语言写的简单文本编辑器.docx
- 文档编号:3328367
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:22
- 大小:31.71KB
Java语言写的简单文本编辑器.docx
《Java语言写的简单文本编辑器.docx》由会员分享,可在线阅读,更多相关《Java语言写的简单文本编辑器.docx(22页珍藏版)》请在冰点文库上搜索。
Java语言写的简单文本编辑器
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
publicclassNotepad/*implementsActionListener,MouseListener,MouseMotionListener,WindowListener,ItemListener,KeyListener,TextListener*/
{
//成员变量
privateFramemainFrame;//主框架
privateMenuBarmb;//菜单条
privateMenumFile,mEdit,mFormat,mHelp;//菜单:
文件,编辑,格式,帮助
privateMenuItemmiNew,miOpen,miSave,miSaveAs,miExit;//文件菜单项:
新建,打开,保存,另存为,退出
privateMenuItemmiCut,miCopy,miPaste,miDelete;//编辑菜单项:
剪切,复制,粘贴,删除
privateMenuItemmiFont,miLowtoCapital,miCapitaltoLow,miEncrypt,miDisencrypt;//格式菜单项:
字体
privateMenuItemmiAboutNotepad;//帮助菜单项:
关于记事本
privateTextAreata;//文本区
privateStringtempString;//临时字符串,用于存储需要复制粘贴的字符串
privatebooleantextValueChanged=false;
privateintid_font;//字体
StringfileName="";//上次保存后的文件名和地址
//构造函数
publicNotepad(){
//框架
mainFrame=newFrame("Notepadv0.99byLaunching");
mb=newMenuBar();
ta=newTextArea(30,60);
ta.setFont(newFont("TimesNewRome",Font.PLAIN,15));
ta.setBackground(newColor(0,250,200));
//菜单条
mFile=newMenu("File");
mEdit=newMenu("Edit");
mFormat=newMenu("Format");
mHelp=newMenu("Help");
//"文件"
miNew=newMenuItem("New");
miOpen=newMenuItem("Open");
miSave=newMenuItem("Save");
miSaveAs=newMenuItem("Saveas");
miExit=newMenuItem("Exit");
//"编辑"
miCut=newMenuItem("Cut");
miCopy=newMenuItem("Copy");
miPaste=newMenuItem("Paste");
miDelete=newMenuItem("Delete");
//"格式"
miFont=newMenuItem("Font");
miLowtoCapital=newMenuItem("LowtoCapital");
miCapitaltoLow=newMenuItem("CapitaltoLow");
miEncrypt=newMenuItem("Encrypt");
miDisencrypt=newMenuItem("Disencrypt");
//"帮助"
miAboutNotepad=newMenuItem("AboutNotepad");
//添加文件菜单项
mFile.add(miNew);
mFile.add(miOpen);
mFile.add(miSave);
mFile.add(miSaveAs);
mFile.add(miExit);
//添加编辑菜单项
mEdit.add(miCut);
mEdit.add(miCopy);
mEdit.add(miPaste);
mEdit.add(miDelete);
//添加格式菜单项
mFormat.add(miFont);
mFormat.add(miLowtoCapital);
mFormat.add(miCapitaltoLow);
mFormat.add(miEncrypt);
mFormat.add(miDisencrypt);
//添加帮助菜单项
mHelp.add(miAboutNotepad);
//菜单条添加菜单
mb.add(mFile);
mb.add(mEdit);
mb.add(mFormat);
mb.add(mHelp);
//框架添加菜单条
mainFrame.setMenuBar(mb);
//初始字符串赋为空
tempString="";
//添加文本区
mainFrame.add(ta,BorderLayout.CENTER);
mainFrame.setSize(800,500);
mainFrame.setLocation(100,100);//起始位置
mainFrame.setResizable(true);//不可更改大小
mainFrame.setVisible(true);
//mainFrame.pack();
/////////////////////////增加监视器//////////////////////
//主框架
mainFrame.addWindowListener(newWindowAdapter(){//关闭窗口
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
//文本区
ta.addKeyListener(newKeyAdapter(){
publicvoidKeyTyped(KeyEvente){
textValueChanged=true;//键盘按键按下即导致文本修改
}
});
////////////////"文件"菜单:
//////////////////////
//新建
miNew.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
ta.replaceRange("",0,ta.getText().length());//清空文本区的内容
fileName="";//文件名清空
}
});
//打开
miOpen.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
FileDialogd=newFileDialog(mainFrame,"openfile",FileDialog.LOAD);//打开文件对话框
d.addWindowListener(newWindowAdapter(){//关闭文件对话框窗口
publicvoidwindowClosing(WindowEventee){
System.exit(0);
}
});
d.setVisible(true);
Filef=newFile(d.getDirectory()+d.getFile());//建立新文件
fileName=d.getDirectory()+d.getFile();//得到文件名
charch[]=newchar[(int)f.length()];///用此文件的长度建立一个字符数组
try//异常处理
{
//读出数据,并存入字符数组ch中
BufferedReaderbw=newBufferedReader(newFileReader(f));
bw.read(ch);
bw.close();
}
catch(FileNotFoundExceptionfe){
System.out.println("filenotfound");
System.exit(0);
}
catch(IOExceptionie){
System.out.println("IOerror");
System.exit(0);
}
Strings=newString(ch);
ta.setText(s);//设置文本区为所打开文件的内容
}
});
//保存
miSave.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(fileName.equals("")){//如果文件没有被保存过,即文件名为空
FileDialogd=newFileDialog(mainFrame,"savefile",FileDialog.SAVE);//保存文件对话框
d.addWindowListener(newWindowAdapter(){//关闭文件对话框窗口
publicvoidwindowClosing(WindowEventee){
System.exit(0);
}
});
d.setVisible(true);
Strings=ta.getText();//得到所输入的文本内容
try//异常处理
{
Filef=newFile(d.getDirectory()+d.getFile());//新建文件
fileName=d.getDirectory()+d.getFile();//得到文件名
BufferedWriterbw=newBufferedWriter(newFileWriter(f));//输入到文件中
bw.write(s,0,s.length());
bw.close();
}
catch(FileNotFoundExceptionfe_){
System.out.println("filenotfound");
System.exit(0);
}
catch(IOExceptionie_)
{
System.out.println("IOerror");
System.exit(0);
}
}
else//如果文件已经保存过
{
Strings=ta.getText();//得到所输入的文本内容
try//异常处理
{
Filef=newFile(fileName);//新建文件
BufferedWriterbw=newBufferedWriter(newFileWriter(f));//输入到文件中
bw.write(s,0,s.length());
bw.close();
}
catch(FileNotFoundExceptionfe_){
System.out.println("filenotfound");
System.exit(0);
}
catch(IOExceptionie_)
{
System.out.println("IOerror");
System.exit(0);
}
}
}
});
//另存为
miSaveAs.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
FileDialogd=newFileDialog(mainFrame,"savefile",FileDialog.SAVE);//保存文件对话框
d.addWindowListener(newWindowAdapter(){//关闭文件对话框窗口
publicvoidwindowClosing(WindowEventee){
System.exit(0);
}
});
d.setVisible(true);
Strings=ta.getText();//得到所输入的文本内容
try//异常处理
{
Filef=newFile(d.getDirectory()+d.getFile());//新建文件
BufferedWriterbw=newBufferedWriter(newFileWriter(f));//输入到文件中
bw.write(s,0,s.length());
bw.close();
}
catch(FileNotFoundExceptionfe_){
System.out.println("filenotfound");
System.exit(0);
}
catch(IOExceptionie_)
{
System.out.println("IOerror");
System.exit(0);
}
}
});
//退出
miExit.addActionListener(newActionListener(){///退出程序
publicvoidactionPerformed(ActionEvente){
System.exit(0);
}
});
////////////////"编辑"菜单:
////////////////////
//剪切
miCut.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
tempString=ta.getSelectedText();///得到要复制的内容,暂存在tempString中
StringBuffertmp=newStringBuffer(ta.getText());//临时存储文本
intstart=ta.getSelectionStart();//得到要删除的字符串的起始位置
intlen=ta.getSelectedText().length();//得到要删除的字符串的长度
tmp.delete(start,start+len);///删除所选中的字符串
ta.setText(tmp.toString());//用新文本设置原文本
}
});
//复制
miCopy.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
tempString=ta.getSelectedText();///得到要复制的内容,暂存在tempString中
}
});
//粘贴
miPaste.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
StringBuffertmp=newStringBuffer(ta.getText());//临时存储文本
intstart=ta.getSelectionStart();//得到要粘贴的位置
tmp.insert(start,tempString);//查入要粘贴的内容
ta.setText(tmp.toString());//用新文本设置原文本
}
});
//删除
miDelete.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
StringBuffertmp=newStringBuffer(ta.getText());//临时存储文本
intstart=ta.getSelectionStart();//得到要删除的字符串的起始位置
intlen=ta.getSelectedText().length();//得到要删除的字符串的长度
tmp.delete(start,start+len);///删除所选中的字符串
ta.setText(tmp.toString());//用新文本设置原文本
}
});
////////////////"格式"菜单:
////////////////////
//字体
miFont.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
finalDialogd=newDialog(mainFrame,"Font");//新建对话框
d.setLocation(250,250);//起始位置
d.setLayout(newBorderLayout());//表格布局
//////////////////////////上部分面板
Labell_font=newLabel("font");//font标签
Panelp_1=newPanel();
p_1.add(l_font);
p_1.setVisible(true);
//////////////////////////中部分面板
Listfont_list=newList(6,false);//字体列表
//添加字体项目
font_list.add("Plain");///普通字体
font_list.add("Bold");///粗体
font_list.add("Italic");//斜体
font_list.addItemListener(newMyItemListener_font());//字体增加监视器
Panelp_2=newPanel();
p_2.add(font_list);
p_2.setVisible(true);
//////////////////////////下部分面板
Buttonok=newButton("OK");
ok.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
d.dispose();
}
});
ok.setSize(newDimension(20,5));
Panelp_3=newPanel();//下部分面板
p_3.add(ok);
p_3.setVisible(true);
//添加三个面板
d.add(p_1,BorderLayout.NORTH);
d.add(p_2,BorderLayout.CENTER);
d.add(p_3,BorderLayout.SOUTH);
d.pack();
d.addWindowListener(newWindowAdapter(){//关闭对话框窗口
publicvoidwindowClosing(WindowEventee){
d.dispose();
}
});
d.setVisible(true);
}
});
//小写字母转大写
miLowtoCapital.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Strings=ta.getText();//得到所输入的文本内容
StringBuffertemp=newStringBuffer("");
for(inti=0;i if((int)s.charAt(i)>=97&&(int)s.charAt(i)<=122){ temp.append((char)((int)s.charAt(i)-32)); } else temp.append(s.charAt(i)); } s=newString(temp); ta.setText(s); } }); //大写字母转小写 miCapitaltoLow.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Strings=ta.getText();//得到所输入的文本内容 StringBuffertemp=newStringBuffer(""); for(inti=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 简单 文本 编辑器