Java写的简单文本编辑器代码(word文档良心出品)
![Java写的简单文本编辑器代码(word文档良心出品)](https://img.360docs.net/img37/16fet46h1ub2yqm1gn1ezgzre42mmina-71.webp)
![Java写的简单文本编辑器代码(word文档良心出品)](https://img.360docs.net/img37/16fet46h1ub2yqm1gn1ezgzre42mmina-02.webp)
import java.awt.*;
import java.awt.eve nt.*; import java.io.*;
public class Notepad /*impleme nts Action Liste ner , MouseListe ner ,
MouseMoti on Liste ner , Win dowListe ner , ItemListe ner , KeyListe ner, TextListe ner */ {
//成员变量 private Menultem miNew , miOpen , miSave , miSaveAs , miExit ; // 文 件菜单项:新建,打开,保存,另存为,退出
private Menultem miCut , miCopy , miPaste , miDelete ;//编辑菜单项: 剪切,复制,粘贴,删除
private Menultem miFont , miLowtoCapital , miCapitaltoLow , miEncrypt miDisencrypt ; //格式菜单项:字体 private
Menultem
miAboutNotepad ; // 帮助菜单项:关于记事本
private Frame mainFrame ; // 主框架 private Men uBar mb ; // 菜单条
private Me nu mFile , mEdit , mFormat
式,帮助
mHelp ; //菜单:文件,编辑,格 private TextArea
ta ; //文本区
private String
tempString ; 〃临时字符串,用于存储需要复制粘贴的字符串
private boolea n textValueCha nged = false private
int id_fo nt
//字体
Stri ng fileName = "" ; //上次保存后的文件名和地址
//构造函数
public Notepad(){
//框架
main Frame = new Frame ( "Notepad v0.99 by Laun chi ng" );
mb = new Men uBar (); ta = new TextArea (30 ,60); ta .setFont( new Font ( "Times New Rome" , Font. PLAIN , 15)); ta .setBackground( new Color(0,250,200)); //菜单条 mFile = mEdit =
new Menu ( new Menu
(
"文件"); "编辑");
mFormat = new Menu ( " 格式t" ); mHelp = new Menu ( " 帮助" );
//" 文件"
miNew = new MenuItem ( " 新建" ); miOpen = new MenuItem ( " 打开" ); miSave = new MenuItem ( " 保存" );
miSaveAs = new MenuItem ( " 另存为" ); miExit = new MenuItem ( "退出" );
//" 编辑"
miCut = new MenuItem ( " 剪切" ); miCopy = new MenuItem ( " 复制" ); miPaste = new MenuItem ( " 粘贴" ); miDelete = new MenuItem ( " 删除" );
//" 格式"
miFont = new MenuItem ( "Font" );
miLowtoCapital = new MenuItem( "Low to Capital"
miCapitaltoLow = new MenuItem( "Capital to Low"
miEncrypt = new MenuItem( "Encrypt" ); miDisencrypt = new MenuItem( "Disencrypt" );
//" 帮助"
miAboutNotepad = new MenuItem ( " 关于Notepad" );
// 添加文件菜单项
mFile .add( miNew );
mFile .add( miOpen );
mFile .add( miSave );
mFile .add( miSaveAs
mFile .add( miExit );
// 添加编辑菜单项
// 添加帮助菜单项
mHelp .add( miAboutNotepad );); );
mEdit .add( mEdit .add( mEdit .add( mEdit .add( miCut ); miCopy ); miPaste ); miDelete );
// 添加格式菜单项
mFormat .add( mFormat .add( mFormat .add( mFormat .add( mFormat .add( miFont ); miLowtoCapital miCapitaltoLow miEncrypt ); miDisencrypt
);
);
);
//菜单条添加菜单 mb.add( mFile ); mb.add( mEdit ); mb.add( mFormat ); mb.add( mHelp );
//框架添加菜单条
mai nFrame .setMe nuBar( mb ); //初始字符串赋为空 tempString ="";
//添加文本区
main Frame .add( ta , BorderLayout. CENTER);
main Frame .setSize(800,500);
main Frame .setLocati on( 100 ,100); main Frame .setResizable( true mainFrame .setVisible( true ); //ma in Frame.pack();
增加监视器 ////////////////////// //主框架
mai nFrame .addWi ndowListe ner( new Win dowAdapter (){ //关闭窗口
public void win dowClos in g(Wi ndowEve nt e) { System. exit (0); } });
//文本区
ta .addKeyListener( new KeyAdapter(){ public void KeyTyped(KeyEvent e){ _________
textValueChanged = true ; //键盘按键按下即导致文本修改 }
});
////////////////" 文件"菜单://////////////////////
//新建
miNew .addActionListener( new ActionListener(){ public void action Performed(Act ion Eve nt e){
//起始位置 );//不可更改大小 /////////////////////////
ta .replaceRange( "",0 , ta .getText().length()); //清空文本区的内
FileDialog d=
new FileDialog( mai nFrame FileDialog. LOAD );
II 打开文件对话框
d.addWi ndowListe ner( new Win dowAdapter(){
public void wi ndowClosi ng(Wi ndowEve nt ee){ System. exit (0);
}
});
d.setVisible(
true );
"open file" ,
//关闭文件对话框窗口
//建立新文件
fileName = d.getDirectory()+d.getFile(); //得到文件名
char ch[] = new char [( int )f.length()]; 符数组
III 用此文件的长度建立一个字
try II 异常处理 {
II 读出数据,并存入字符数组ch 中 BufferedReader bw = new BufferedReader( bw.read(ch);
bw.close(); }
catch ( FileNotFoundException fe ){ System. out .println( "file not found" ); System. exit (0); }
catch ( lOException ie){ System. out .println( "IO error" ); System. exit (0); } new FileReader(f));
String s =
new String (ch);
ta .setText(s); II 设置文本区为所打开文件的内容
fileName = "" ;//文件名清空 } });
//打开
miOpen .addActionListener( new ActionListener(){ public void action Performed(Act ion Eve nt e) { File f =
new File( d.getDirectory()+d.getFile());
});
// 保存
miSave .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent
e) {
if ( fileName .equals( ) ){ // 如果文件没有被保存过, 即文件名为空FileDialog d= new FileDialog( mainFrame , "save file" , FileDialog. SAVE ); // 保存文件对话框
d.addWindowListener( new WindowAdapter(){ // 关闭文件对话框窗口public void
windowClosing(WindowEvent ee){
System. exit (0);
}
});
d.setVisible( true );
String s = ta .getText(); // 得到所输入的文本内容
try // 异常处理
{
File f = new File( d.getDirectory()+d.getFile()); // 新建文件
fileName = d.getDirectory()+d.getFile(); // 得到文件名
BufferedWriter bw = new BufferedWriter( new FileWriter (f)); // 输入到文件中
bw.write(s , 0 , s.length());
bw.close();
}
catch (FileNotFoundException fe_){
System. out .println( "file not found" );
System. exit (0);
}
catch ( IOException ie_)
{
System. out .println( " IO error" );
System. exit (0);
}
}
else // 如果文件已经保存过
{
String s = ta .getText(); // 得到所输入的文本内容
try // 异常处理
{
File f = new File( fileName ); // 新建文件
BufferedWriter bw = new BufferedWriter( new FileWriter (f)); // 输入到文件中
bw.write(s , 0 , s.length());
bw.close();
}
catch (FileNotFoundException fe_){
System. out .println( "file not found" );
System. exit (0);
}
catch ( IOException ie_)
{
System. out .println( " IO error" );
System. exit (0);
}
}
}
});
// 另存为
miSaveAs .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent
e) {
FileDialog d= new FileDialog( mainFrame , "save file" , FileDialog. SAVE ); // 保存文件对话框d.addWindowListener( new WindowAdapter(){ // 关闭文件对话框窗口public void
windowClosing(WindowEvent ee){
System. exit (0);
}
});
d.setVisible( true );
String s = ta .getText(); // 得到所输入的文本内容
try // 异常处理
{
File f = new File( d.getDirectory()+d.getFile()); // 新建文件
BufferedWriter bw = new BufferedWriter( new FileWriter (f)); // 输入到文件中
bw.write(s , 0 , s.length());
bw.close();
编辑" 菜单: //////////////////// // 剪切
miCut .addActionListener( public void
actionPerformed(ActionEvent e){ tempString = ta .getSelectedText();
tempString 中
StringBuffer tmp = new StringBuffer ( 文本 int start = ta .getSelectionStart();
int len = ta .getSelectedText().length(); 度
tmp.delete( start , start+len); /// 删除所选中的字符串 ta .setText(tmp.toString()); // 用新文本设置原文本 } });
// 复制
miCopy .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){
tempString = ta .getSelectedText(); /// 得到要复制的内容 , 暂存在 tempString 中 } });
// 粘贴
miPaste .addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){
System. System. }
catch { System. out .println( exit (0); "file not found"
( IOException ie_) out .println( " IO error"
System.
} exit (0);
} });
);
miExit public System. } });
.addActionListener( new ActionListener(){ void actionPerformed(ActionEvent e){ exit (0);
/// 退出程序
////////////////" new ActionListener(){
/// 得到要复制的内容 , 暂存在
ta .getText()); // 临时存储 // 得到要删除的字符串的起始位置
// 得到要删除的字符串的长
catch (FileNotFoundException fe_){
// 退出