完整word版简单Java仿windows记事本.docx
《完整word版简单Java仿windows记事本.docx》由会员分享,可在线阅读,更多相关《完整word版简单Java仿windows记事本.docx(24页珍藏版)》请在冰豆网上搜索。
完整word版简单Java仿windows记事本
主程序:
importjava.awt。
*;
importjava.awt.datatransfer.*;
importjava。
awt。
event.*;
importjavax。
print。
*;
importjavax.print。
attribute。
DocAttributeSet;
importjavax.print.attribute.HashDocAttributeSet;
importjavax.print.attribute.HashPrintRequestAttributeSet;
importjavax.print.attribute.PrintRequestAttributeSet;
importjavax。
print.attribute.standard.MediaSizeName;
importjavax.swing。
*;
importjavax.swing.border。
BevelBorder;
importjavax。
swing。
event。
UndoableEditEvent;
importjavax。
swing。
event。
UndoableEditListener;
importjavax。
swing.filechooser.*;
importjavax.swing.filechooser。
FileFilter;
importjavax。
swing。
plaf.FileChooserUI;
importjavax。
swing.undo.UndoableEdit;
importjava.io.*;
publicclassNotepadextendsJFrame{
/**
*@paramargs
*/
publicJTextAreajta=null;//中间的文本区域
privateFileselectedFile=null;
privateJFileChooserchooser=null;//文件选择器
privateUndoableEditedit;//设置还原功能
privatebooleancanUndo=false;
privateJMenuItemjmiUndoItem;//撤销的菜单
privateClipboardclip=null;//粘贴板
privateJDialogjdSearchDialog;
publicNotepad()
{
super(”NotepadBeta”);
super。
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
chooser=newJFileChooser();
chooser。
setFileSelectionMode(JFileChooser.FILES_ONLY);
clip=Toolkit。
getDefaultToolkit().getSystemClipboard();
jta=newJTextArea();
jta。
setWrapStyleWord(true);
jta。
setLineWrap(true);
//*****************************右键弹出功能
finalJPopupMenujpMenu=newJPopupMenu();
JMenuItemjpItemUndo=newJMenuItem(”撤销(U)”);
JMenuItemjpItemCut=newJMenuItem(”剪切(T)”);
JMenuItemjpItemCopy=newJMenuItem(”复制(C)”);
JMenuItemjpItemPaste=newJMenuItem("粘贴(P)”);
jpMenu。
add(jpItemUndo);
jpMenu.add(newJPopupMenu。
Separator());
jpMenu。
add(jpItemCut);
jpMenu.add(jpItemCopy);
jpMenu.add(jpItemPaste);
jpMenu。
setBorder(newBevelBorder(BevelBorder.RAISED));
jta。
addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEvente)
{
if(e。
isMetaDown())
{
if(!
jpMenu.isVisible())
{
jpMenu.show(e.getComponent(),e.getX(),e。
getY());
}
}
else{
jpMenu.setVisible(false);
}
}
});
//*****************************实现撤销功能
jta。
getDocument()。
addUndoableEditListener(newUndoableEditListener(){
@Override
publicvoidundoableEditHappened(UndoableEditEvente){
//TODOAuto-generatedmethodstub
edit=e.getEdit();
if(edit!
=null)
{
canUndo=edit。
canUndo();
}
else
{
canUndo=false;
}
}
});
//**********************************设置相关菜单和事件监听
Containercontent=getContentPane();
JMenuBarjmb=newJMenuBar();
JMenujmFile=newJMenu(”文件(F)”);
jmFile.setMnemonic('f’);
JMenujmEdit=newJMenu(”编辑(E)");
jmEdit.setMnemonic('e’);
JMenujmStyle=newJMenu(”格式(O)”);
jmStyle。
setMnemonic('e’);
JMenujmView=newJMenu(”查看(V)");
jmView.setMnemonic('v');
JMenujmHelp=newJMenu("帮助(H)");
jmHelp。
setMnemonic('h');
jmb.add(jmFile);
jmb。
add(jmEdit);
jmb.add(jmStyle);
jmb。
add(jmView);
jmb。
add(jmHelp);
setJMenuBar(jmb);
JMenuItemjmiNewItem=newJMenuItem("新建(N)Ctrl+N");
jmiNewItem.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto—generatedmethodstub
if(!
jta.getText().equals(”"))
{
intconfirm=JOptionPane.showConfirmDialog(Notepad.this,"是否保存(S)Ctrl+S文件?
”);
if(confirm==JOptionPane.OK_OPTION)
{
if(selectedFile!
=null)
{
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta。
getText());
fw。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane。
showConfirmDialog(Notepad.this,”文件写入异常");
}
jta。
setText("”);
}
else
{
jta。
setText(””);
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showSaveDialog(Notepad.this);
if(selection==JFileChooser。
APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta。
getText());
fw.close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane。
showConfirmDialog(Notepad。
this,"文件写入异常”);
}
}
}
}
elseif(confirm==JOptionPane.NO_OPTION)
{
jta。
setText(”");
}
else{}
}
else{}
}
});
JMenuItemjmiOpenItem=newJMenuItem("打开(O)Ctrl+O");
jmiOpenItem。
addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto—generatedmethodstub
if(!
jta。
getText().equals("”))
{
intconfirm=JOptionPane。
showConfirmDialog(Notepad。
this,"是否保存(S)Ctrl+S文件?
");
if(confirm==JOptionPane。
OK_OPTION)
{
if(selectedFile!
=null)
{
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta.getText());
fw。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane。
showConfirmDialog(Notepad。
this,”文件写入异常");
}
}
else
{
JFileChooserjChooser=newJFileChooser();
intselection=jChooser。
showSaveDialog(Notepad.this);
if(selection==JFileChooser。
APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta。
getText());
fw。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane。
showConfirmDialog(Notepad.this,”文件写入异常");
}
}
}
}
elseif(confirm==JOptionPane。
NO_OPTION)
{
jta。
setText(””);
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
{
if(selection==JFileChooser.APPROVE_OPTION)
{
selectedFile=jChooser。
getSelectedFile();
try{
BufferedReaderbf=newBufferedReader(newFileReader(selectedFile));
StringtempString="”;
inti;
while((i=bf。
read())!
=—1)
{
tempString+=String。
valueOf((char)i);
}
jta。
setText(tempString);
bf。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane。
showConfirmDialog(Notepad.this,"文件保存(S)Ctrl+S错误");
}
}
else{}
}
}
else{}
}
else
{
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
if(selection==JFileChooser。
APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try{
BufferedReaderbf=newBufferedReader(newFileReader(selectedFile));
StringtempString=”";
inti;
while((i=bf.read())!
=-1)
{
tempString+=String.valueOf((char)i);
}
jta.setText(tempString);
bf。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane.showConfirmDialog(Notepad.this,"文件打开(O)Ctrl+O错误");
}
}
else{}
}
}
});
JMenuItemjmiSaveItem=newJMenuItem("保存(S)Ctrl+S”);
jmiSaveItem。
addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
if(jta.getText()。
equals(”")){}
else
{
if(selectedFile==null)
{
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
if(selection==JFileChooser。
APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try{
BufferedReaderbf=newBufferedReader(newFileReader(selectedFile));
StringtempString=””;
inti;
while((i=bf。
read())!
=-1)
{
tempString+=String。
valueOf((char)i);
}
jta.setText(tempString);
bf.close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane.showConfirmDialog(Notepad。
this,”文件打开(O)Ctrl+O错误");
}
}
else{}
}
else
{
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta.getText());
fw。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane.showConfirmDialog(Notepad.this,”文件写入异常”);
}
}
}
}});
JMenuItemjmiSaveTo=newJMenuItem("另存为(A)。
..");
jmiSaveTo。
addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
if(selection==JFileChooser.APPROVE_OPTION)
{
selectedFile=jChooser。
getSelectedFile();
try{
BufferedWriterbf=newBufferedWriter(newFileWriter(selectedFile));
bf.write(jta.getText());
bf.close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane.showConfirmDialog(Notepad。
this,”文件打开(O)Ctrl+O错误");
}
}
else{}
}
});
JMenuItemjmiExitItem=newJMenuItem(”退出(X)");
jmiExitItem。
addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
if(jta.getText()。
equals("”))
System。
exit(0);
else
{
intt=JOptionPane。
showConfirmDialog(N