📄 notepad备份.java
字号:
else
{ try
{ FileReader fr=new FileReader(fileName);
BufferedReader bfr=new BufferedReader(fr);
editArea.setText("");
while((str=bfr.readLine())!=null)
{ editArea.append(str);
}
this.setTitle(fileName.getName()+" - 记事本");
statusLabel.setText(" 当前打开文件:"+fileName.getAbsoluteFile());
fr.close();
isNewFile=false;
currentFile=fileName;
oldValue=editArea.getText();
}
catch (IOException ioException)
{
}
}
}
else
{ return;
}
}
else
{ String str=null;
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setDialogTitle("打开文件");
int result=fileChooser.showOpenDialog(this);
if(result==JFileChooser.CANCEL_OPTION)
{ statusLabel.setText(" 您没有选择任何文件 ");
return;
}
File fileName=fileChooser.getSelectedFile();
if(fileName==null || fileName.getName().equals(""))
{ JOptionPane.showMessageDialog(this,"不合法的文件名","不合法的文件名",JOptionPane.ERROR_MESSAGE);
}
else
{ try
{ FileReader fr=new FileReader(fileName);
BufferedReader bfr=new BufferedReader(fr);
editArea.setText("");
while((str=bfr.readLine())!=null)
{ editArea.append(str);
}
this.setTitle(fileName.getName()+" - 记事本");
statusLabel.setText(" 当前打开文件:"+fileName.getAbsoluteFile());
fr.close();
isNewFile=false;
currentFile=fileName;
oldValue=editArea.getText();
}
catch (IOException ioException)
{
}
}
}
}//打开结束
//保存
else if(e.getSource()==fileMenu_Save)
{ editArea.requestFocus();
if(isNewFile)
{ String str=null;
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setDialogTitle("保存");
int result=fileChooser.showSaveDialog(this);
if(result==JFileChooser.CANCEL_OPTION)
{ statusLabel.setText("您没有选择任何文件");
return;
}
File saveFileName=fileChooser.getSelectedFile();
if(saveFileName==null || saveFileName.getName().equals(""))
{ JOptionPane.showMessageDialog(this,"不合法的文件名","不合法的文件名",JOptionPane.ERROR_MESSAGE);
}
else
{ try
{ FileWriter fw=new FileWriter(saveFileName);
BufferedWriter bfw=new BufferedWriter(fw);
bfw.write(editArea.getText(),0,editArea.getText().length());
bfw.flush();//刷新该流的缓冲
bfw.close();
isNewFile=false;
currentFile=saveFileName;
oldValue=editArea.getText();
this.setTitle(saveFileName.getName()+" - 记事本");
statusLabel.setText("当前打开文件:"+saveFileName.getAbsoluteFile());
}
catch (IOException ioException)
{
}
}
}
else
{ try
{ FileWriter fw=new FileWriter(currentFile);
BufferedWriter bfw=new BufferedWriter(fw);
bfw.write(editArea.getText(),0,editArea.getText().length());
bfw.flush();
fw.close();
}
catch(IOException ioException)
{
}
}
}//保存结束
//另存为
else if(e.getSource()==fileMenu_SaveAs)
{ editArea.requestFocus();
String str=null;
JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setDialogTitle("另存为");
int result=fileChooser.showSaveDialog(this);
if(result==JFileChooser.CANCEL_OPTION)
{ statusLabel.setText(" 您没有选择任何文件");
return;
}
File saveFileName=fileChooser.getSelectedFile();
if(saveFileName==null||saveFileName.getName().equals(""))
{ JOptionPane.showMessageDialog(this,"不合法的文件名","不合法的文件名",JOptionPane.ERROR_MESSAGE);
}
else
{ try
{ FileWriter fw=new FileWriter(saveFileName);
BufferedWriter bfw=new BufferedWriter(fw);
bfw.write(editArea.getText(),0,editArea.getText().length());
bfw.flush();
fw.close();
oldValue=editArea.getText();
this.setTitle(saveFileName.getName()+" - 记事本");
statusLabel.setText(" 当前打开文件:"+saveFileName.getAbsoluteFile());
}
catch(IOException ioException)
{
}
}
}//另存为结束
//页面设置
else if(e.getSource()==fileMenu_PageSetUp)
{ editArea.requestFocus();
JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE);
}//页面设置结束
//打印
else if(e.getSource()==fileMenu_Print)
{ editArea.requestFocus();
JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE);
}//打印结束
//退出
else if(e.getSource()==fileMenu_Exit)
{ int exitChoose=JOptionPane.showConfirmDialog(this,"确定要退出吗?","退出提示",JOptionPane.OK_CANCEL_OPTION);
if(exitChoose==JOptionPane.OK_OPTION)
{ System.exit(0);
}
else
{ return;
}
}//退出结束
//撤销
else if(e.getSource()==editMenu_Undo || e.getSource()==popupMenu_Undo)
{ editArea.requestFocus();
if(undo.canUndo())
{ try
{ undo.undo();
}
catch (CannotUndoException ex)
{ System.out.println("Unable to undo:" + ex);
}
}
if(!undo.canUndo())
{ editMenu_Undo.setEnabled(false);
}
}//撤销结束
//剪切
else if(e.getSource()==editMenu_Cut || e.getSource()==popupMenu_Cut)
{ editArea.requestFocus();
String text=editArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
checkMenuItemEnabled();//设置剪切,复制,粘帖,删除功能的可用性
}//剪切结束
//复制
else if(e.getSource()==editMenu_Copy || e.getSource()==popupMenu_Copy)
{ editArea.requestFocus();
String text=editArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
checkMenuItemEnabled();//设置剪切,复制,粘帖,删除功能的可用性
}//复制结束
//粘帖
else if(e.getSource()==editMenu_Paste || e.getSource()==popupMenu_Paste)
{ editArea.requestFocus();
Transferable contents=clipBoard.getContents(this);
if(contents==null)return;
String text="";
try
{ text=(String)contents.getTransferData(DataFlavor.stringFlavor);
}
catch (Exception exception)
{
}
editArea.replaceRange(text,editArea.getSelectionStart(),editArea.getSelectionEnd());
checkMenuItemEnabled();
}//粘帖结束
//删除
else if(e.getSource()==editMenu_Delete || e.getSource()==popupMenu_Delete)
{ editArea.requestFocus();
editArea.replaceRange("",editArea.getSelectionStart(),editArea.getSelectionEnd());
checkMenuItemEnabled(); //设置剪切、复制、粘贴、删除等功能的可用性
}//删除结束
//查找
else if(e.getSource()==editMenu_Find)
{ editArea.requestFocus();
find();
}//查找结束
//查找下一个
else if(e.getSource()==editMenu_FindNext)
{ editArea.requestFocus();
find();
}//查找下一个结束
//替换
else if(e.getSource()==editMenu_Replace)
{ editArea.requestFocus();
replace();
}//替换结束
//转到
else if(e.getSource()==editMenu_GoTo)
{ editArea.requestFocus();
JOptionPane.showMessageDialog(this,"对不起,此功能尚未实现!","提示",JOptionPane.WARNING_MESSAGE);
}//转到结束
//时间日期
else if(e.getSource()==editMenu_TimeDate)
{ editArea.requestFocus();
Calendar rightNow=Calendar.getInstance();
Date date=rightNow.getTime();
editArea.insert(date.toString(),editArea.getCaretPosition());
}//时间日期结束
//全选
else if(e.getSource()==editMenu_SelectAll || e.getSource()==popupMenu_SelectAll)
{ editArea.selectAll();
}//全选结束
//自动换行(已在前面设置)
else if(e.getSource()==formatMenu_LineWrap)
{ if(formatMenu_LineWrap.getState())
editArea.setLineWrap(true);
else
editArea.setLineWrap(false);
}//自动换行结束
//字体设置
else if(e.getSource()==formatMenu_Font)
{ editArea.requestFocus();
font();
}//字体设置结束
//设置状态栏可见性
else if(e.getSource()==viewMenu_Status)
{ if(viewMenu_Status.getState())
statusLabel.setVisible(true);
else
statusLabel.setVisible(false);
}//设置状态栏可见性结束
//帮助主题
else if(e.getSource()==helpMenu_HelpTopics)
{ editArea.requestFocus();
JOptionPane.showMessageDialog(this,"路漫漫其修远兮,吾将上下而求索。","帮助主题",JOptionPane.INFORMATION_MESSAGE);
}//帮助主题结束
//关于
else if(e.getSource()==helpMenu_AboutNotepad)
{ editArea.requestFocus();
JOptionPane.showMessageDialog(this,
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"+
" 编写者:黄山学院信息工程学院计算机科学与技术专业06级本科 张选仲 \n"+
" 编写时间:大二下暑假期间 \n"+
" 本人QQ:414644665 \n"+
" e-mail:zxz414644665@163.com \n"+
" 初学者,一些地方借鉴他人,不足之处希望大家能提出意见,谢谢! \n"+
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n",
"记事本",JOptionPane.INFORMATION_MESSAGE);
}//关于结束
}//方法actionPerformed()结束
//实现DocumentListener接口中的方法(与撤销操作有关)
public void removeUpdate(DocumentEvent e)//给出移除了一部分文档的通知
{ editMenu_Undo.setEnabled(true);
}
public void insertUpdate(DocumentEvent e)//给出对文档执行了插入操作的通知
{ editMenu_Undo.setEnabled(true);
}
public void changedUpdate(DocumentEvent e)//给出属性或属性集发生了更改的通知
{ editMenu_Undo.setEnabled(true);
}//DocumentListener结束
//实现接口UndoableEditListener的类UndoHandler(与撤销操作有关)
class UndoHandler implements UndoableEditListener
{ public void undoableEditHappened(UndoableEditEvent uee)
{ undo.addEdit(uee.getEdit());
}
}
//main函数开始
public static void main(String args[])
{ Notepad notepad=new Notepad();
notepad.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使用 System exit 方法退出应用程序
}//main函数结束
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -