记事本编辑器JAVA.docx
- 文档编号:9390851
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:24
- 大小:18.09KB
记事本编辑器JAVA.docx
《记事本编辑器JAVA.docx》由会员分享,可在线阅读,更多相关《记事本编辑器JAVA.docx(24页珍藏版)》请在冰点文库上搜索。
记事本编辑器JAVA
importjava.awt.BorderLayout;
importjava.awt.Button;
importjava.awt.Dialog;
importjava.awt.FileDialog;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.Frame;
importjava.awt.GridLayout;
importjava.awt.Label;
importjava.awt.List;
importjava.awt.Menu;
importjava.awt.MenuBar;
importjava.awt.MenuItem;
importjava.awt.MenuShortcut;
importjava.awt.Panel;
importjava.awt.TextArea;
importjava.awt.Toolkit;
importjava.awt.datatransfer.Clipboard;
importjava.awt.datatransfer.DataFlavor;
importjava.awt.datatransfer.StringSelection;
importjava.awt.datatransfer.Transferable;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyEvent;
importjava.awt.event.TextEvent;
importjava.awt.event.TextListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileReader;
importjava.io.FileWriter;
publicclassTxtextendsFrameimplements
ActionListener,TextListener
{
//LECYKX,2010,12,1
privatestaticfinallongserialVersionUID=
1L;
//*****************初始化工作**************
MenuBarmenuBar;
MenumenuFile,menuEdi,menuFormat,menuHelp;
MenuItem
menuItemNew,menuItemOpen,menuItemSave,menuItemOsave,men
uItemExit,
menuItemCut,menuItemCopy,menuItemPase,menuItemDel,menuI
temSelectAll,
menuItemFont,menuItemAbout;
TextAreatextArea;
FileDialogfileOpen,fileSave;
Stringtemp,fileName;
MyDialogmyDialog;
booleanchange=false;
TextClipboardcb;
publicTxt()
{
super("文本编辑器");
this.setBounds(200,200,400,300);
menuBar=newMenuBar();
textArea=newTextArea();
textArea.addTextListener(this);
menuFile=newMenu("文件(F)");
menuItemNew=newMenuItem("新建(N)");
menuItemNew.setShortcut(new
MenuShortcut(KeyEvent.VK_N));
menuItemNew.addActionListener(this);
menuItemOpen=newMenuItem("打开
(O)...");
menuItemOpen.setShortcut(new
MenuShortcut(KeyEvent.VK_O));
menuItemOpen.addActionListener(this);
menuItemSave=newMenuItem("保存(S)");
menuItemSave.setShortcut(new
MenuShortcut(KeyEvent.VK_S));
menuItemSave.addActionListener(this);
menuItemOsave=newMenuItem("另存为
(A)...");
menuItemOsave.addActionListener(this);
menuItemExit=newMenuItem("退出(X)");
menuItemExit.addActionListener(this);
menuItemExit.setShortcut(new
MenuShortcut(KeyEvent.VK_E));
menuFile.add(menuItemNew);
menuFile.add(menuItemOpen);
menuFile.add(menuItemSave);
menuFile.add(menuItemOsave);
menuFile.addSeparator();
menuFile.add(menuItemExit);
menuEdi=newMenu("编辑(E)");
menuItemCut=newMenuItem("剪切(T)");
menuItemCut.setShortcut(new
MenuShortcut(KeyEvent.VK_X));
menuItemCut.addActionListener(this);
menuItemCopy=newMenuItem("复制(C)");
menuItemCopy.setShortcut(new
MenuShortcut(KeyEvent.VK_C));
menuItemCopy.addActionListener(this);
menuItemPase=newMenuItem("粘帖(P)");
menuItemPase.setShortcut(new
MenuShortcut(KeyEvent.VK_V));
menuItemPase.addActionListener(this);
menuItemDel=newMenuItem("删除(L)");
menuItemDel.addActionListener(this);
menuItemSelectAll=newMenuItem("全选
(A)");
menuItemSelectAll.setShortcut(new
MenuShortcut(KeyEvent.VK_A));
menuItemSelectAll.addActionListener
(this);
menuEdi.add(menuItemCut);
menuEdi.add(menuItemCopy);
menuEdi.add(menuItemPase);
menuEdi.add(menuItemDel);
menuEdi.addSeparator();
menuEdi.add(menuItemSelectAll);
menuFormat=newMenu("格式(O)");
menuItemFont=newMenuItem("字体...");
menuItemFont.addActionListener(this);
menuFormat.add(menuItemFont);
menuHelp=newMenu("帮助(H)");
menuItemAbout=newMenuItem("关于记事
本");
menuItemAbout.addActionListener(this);
menuHelp.add(menuItemAbout);
menuBar.add(menuFile);
menuBar.add(menuEdi);
menuBar.add(menuFormat);
menuBar.add(menuHelp);
fileName="";
myDialog=newMyDialog(this,"保存文件?
",true);
fileSave=newFileDialog(this,"保存文
件",FileDialog.SAVE);
fileSave.setBounds(200,200,400,300);
fileOpen=newFileDialog(this,"打开文
件",FileDialog.LOAD);
fileOpen.setBounds(200,200,400,300);
cb=newTextClipboard();
this.addWindowListener(new
WindowAdapter()
{
publicvoidwindowClosing
(WindowEventarg0)
{
if(fileName!
="")
{
if
(change==false)
System.exit(0);
if
(change==true)
{
save
(fileName);
System.exit(0);
}
}
if(fileName=="")
{
if
(change==false)
System.exit(0);
if
(change==true)
{
myDialog.setVisible(true);
if
(myDialog.getMessage()==MyDialog.YES)
{
fileSave.setVisible(true);
fileName=fileSave.getDirectory()+"\\"+fileSave.getFile
();
save(fileName);
System.exit(0);
}
if
(myDialog.getMessage()==MyDialog.NO)
System.exit(0);
}
}
}
});
this.setMenuBar(menuBar);
this.add(textArea);
this.setVisible(true);
}
//*****************办法**************
publicvoidopen(Stringpath)
{
try{
FileReaderfile=newFileReader
(path);
BufferedReaderread=new
BufferedReader(file);
StringBuffersb=new
StringBuffer();
while((temp=read.readLine())!
=null)
sb.append(temp+'\n');
textArea.setText(sb.toString
());
file.close();
read.close();
}catch(Exceptione){
}
}
publicvoidsave(Stringpath)
{
try{
FileWriterfile=newFileWriter
(path);
BufferedWriterbw=new
BufferedWriter(file);
bw.write(textArea.getText());
bw.close();
}
catch(Exceptione)
{
}
}
//*****************事件监听器**************
publicvoidtextValueChanged(TextEventarg0){
change=true;
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==menuItemNew)
{
if(fileName!
="")
{
save(fileName);
textArea.setText("");
}
if(fileName==""&&change==true)
{
fileSave.setVisible
(true);
fileName=fileSave.getDirectory()+"\\"+fileSave.getFile
();
save(fileName);
textArea.setText("");
}
else{
textArea.setText("");
fileName="";
}
}
if(e.getSource()==menuItemOpen)
{
fileOpen.setVisible(true);
fileName=fileOpen.getDirectory
()+"\\"+fileOpen.getFile();
open(fileName);
}
if(e.getSource()==menuItemSave)
{
if(fileName!
="")
save(fileName);
else
{
fileSave.setVisible
(true);
fileName=fileSave.getDirectory()+"\\"+fileSave.getFile
();
save(fileName);
}
}
if(e.getSource()==menuItemOsave)
{
fileSave.setVisible(true);
fileName=fileSave.getDirectory
()+"\\"+fileSave.getFile();
save(fileName);
}
if(e.getSource()==menuItemExit)
{
if(fileName!
="")
{
if(change==false)
System.exit(0);
if(change==true)
{
save(fileName);
System.exit(0);
}
}
if(fileName=="")
{
if(change==false)
System.exit(0);
if(change==true)
{
myDialog.setVisible(true);
if
(myDialog.getMessage()==MyDialog.YES)
{
fileSave.setVisible(true);
fileName=fileSave.getDirectory()+"\\"+fileSave.getFile
();
save
(fileName);
System.exit(0);
}
if
(myDialog.getMessage()==MyDialog.NO)
System.exit(0);
}
}
}
if(e.getSource()==menuItemCut)
{
cb.setData
(textArea.getSelectedText());
textArea.replaceRange("",
textArea.getSelectionStart(),textArea.getSelectionEnd
());
}
if(e.getSource()==menuItemCopy)
{
cb.setData
(textArea.getSelectedText());
}
if(e.getSource()==menuItemPase)
{
textArea.replaceRange
(cb.getData(),textArea.getSelectionStart(),
textArea.getSelectionEnd());
}
if(e.getSource()==menuItemDel)
{
textArea.replaceRange("",
textArea.getSelectionStart(),textArea.getSelectionEnd
());
}
if(e.getSource()==menuItemSelectAll)
{
textArea.selectAll();
}
if(e.getSource()==menuItemFont)
{
SetFontsetfont=newSetFont
(this,"字体设置",true);
setfont.setVisible(true);
textArea.setFont
(setfont.myFont);
}
if(e.getSource()==menuItemAbout)
{
DialogAboutdiaAbout=new
DialogAbout(this,"关于文本编辑器",true);
diaAbout.setVisible(true);
}
}
publicstaticvoidmain(String[]args)
{
newTxt();
}
}
//*****************保存提示框类**************
classMyDialogextendsDialogimplementsActionListener
{
/**
*
*/
privatestaticfinallongserialVersionUID=
1L;
staticfinalintYES=1,NO=0;
intmessage=-1;
Buttonyes,no;
MyDialog(Framef,Strings,booleanb)
{
super(f,s,b);
yes=newButton("保存文件");
yes.addActionListener(this);
no=newButton("不保存并退出");
no.addActionListener(this);
setLayout(newFlowLayout());
add(yes);
add(no);
setBounds(300,300,200,80);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing
(WindowEvente){
message=-1;
setVisible(false);
}
});
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==yes){
message=YES;
setVisible(false);
}elseif(e.getSource()==no){
message=NO;
setVisible(false);
}
}
publicintgetMessage(){
returnmessage;
}
}
//*****************关于对话框类**************
classDialogAboutextendsDialogimplements
ActionListener
{
privatestaticfinallongserialVersionUID=
1L;
Buttonbutton;
Labell;
DialogAbout(Framef,Strings,booleanb)
{
super(f,s,b);
setLayout(newFlowLayout());
button=newButton("了解");
l=newLabel("菜鸟级人物编写--LECYKX");
button.addActionListener(this);
add(l);
add(button);
setBounds(300,300,200,100);
addWindowListener(newWindowAdapter(){
publicvoidwindo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记事本 编辑器 JAVA