完整word版简单Java仿windows记事本Word格式文档下载.docx
《完整word版简单Java仿windows记事本Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《完整word版简单Java仿windows记事本Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
*@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);
setLineWrap(true);
//*****************************右键弹出功能
finalJPopupMenujpMenu=newJPopupMenu();
JMenuItemjpItemUndo=newJMenuItem(”撤销(U)”);
JMenuItemjpItemCut=newJMenuItem(”剪切(T)”);
JMenuItemjpItemCopy=newJMenuItem(”复制(C)”);
JMenuItemjpItemPaste=newJMenuItem("
粘贴(P)”);
jpMenu。
add(jpItemUndo);
jpMenu.add(newJPopupMenu。
Separator());
add(jpItemCut);
jpMenu.add(jpItemCopy);
jpMenu.add(jpItemPaste);
setBorder(newBevelBorder(BevelBorder.RAISED));
addMouseListener(newMouseAdapter(){
publicvoidmouseClicked(MouseEvente)
{
if(e。
isMetaDown())
{
if(!
jpMenu.isVisible())
{
jpMenu.show(e.getComponent(),e.getX(),e。
getY());
}
}
else{
jpMenu.setVisible(false);
}
}
});
//*****************************实现撤销功能
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。
h'
jmb.add(jmFile);
jmb。
add(jmEdit);
jmb.add(jmStyle);
add(jmView);
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!
{
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta。
getText());
fw。
close();
}catch(Exceptione){
//TODO:
handleexception
JOptionPane。
showConfirmDialog(Notepad.this,”文件写入异常"
}
jta。
setText("
}
else
setText(””);
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showSaveDialog(Notepad.this);
if(selection==JFileChooser。
APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta。
fw.close();
}catch(Exceptione){
//TODO:
JOptionPane。
showConfirmDialog(Notepad。
this,"
文件写入异常”);
}
}
elseif(confirm==JOptionPane.NO_OPTION)
setText(”"
}
else{}
else{}
}
});
JMenuItemjmiOpenItem=newJMenuItem("
打开(O)Ctrl+O"
jmiOpenItem。
addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
if(!
jta。
getText().equals("
”))
intconfirm=JOptionPane。
是否保存(S)Ctrl+S文件?
"
if(confirm==JOptionPane。
OK_OPTION)
{
fw.write(jta.getText());
close();
}catch(Exceptione){
//TODO:
this,”文件写入异常"
JFileChooserjChooser=newJFileChooser();
intselection=jChooser。
showSaveDialog(Notepad.this);
{
FileWriterfw=newFileWriter(selectedFile);
getText());
fw。
}catch(Exceptione){
}
elseif(confirm==JOptionPane。
NO_OPTION)
setText(””);
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。
showConfirmDialog(Notepad.this,"
文件保存(S)Ctrl+S错误"
}
else{}
}
else
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
if(selection==JFileChooser。
{
selectedFile=jChooser.getSelectedFile();
try{
BufferedReaderbf=newBufferedReader(newFileReader(selectedFile));
StringtempString=”"
;
inti;
while((i=bf.read())!
=-1)
tempString+=String.valueOf((char)i);
jta.setText(tempString);
bf。
}catch(Exceptione){
//TODO:
JOptionPane.showConfirmDialog(Notepad.this,"
文件打开(O)Ctrl+O错误"
}
}
else{}
}
JMenuItemjmiSaveItem=newJMenuItem("
保存(S)Ctrl+S”);
jmiSaveItem。
addActionListener(newActionListener(){
if(jta.getText()。
equals(”"
)){}
if(selectedFile==null)
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
if(selection==JFileChooser。
{
selectedFile=jChooser.getSelectedFile();
try{
BufferedReaderbf=newBufferedReader(newFileReader(selectedFile));
StringtempString=””;
inti;
while((i=bf。
{
tempString+=String。
valueOf((char)i);
jta.setText(tempString);
bf.close();
}catch(Exceptione){
//TODO:
JOptionPane.showConfirmDialog(Notepad。
this,”文件打开(O)Ctrl+O错误"
else{}
else
try{
FileWriterfw=newFileWriter(selectedFile);
fw.write(jta.getText());
fw。
}catch(Exceptione){
//TODO:
JOptionPane.showConfirmDialog(Notepad.this,”文件写入异常”);
}
}});
JMenuItemjmiSaveTo=newJMenuItem("
另存为(A)。
.."
jmiSaveTo。
JFileChooserjChooser=newJFileChooser();
intselection=jChooser.showOpenDialog(Notepad.this);
if(selection==JFileChooser.APPROVE_OPTION)
selectedFile=jChooser。
getSelectedFile();
BufferedWriterbf=newBufferedWriter(newFileWriter(selectedFile));
bf.write(jta.getText());
bf.close();
}catch(Exceptione){
JOptionPane.showConfirmDialog(Notepad。
this,”文件打开(O)Ctrl+O错误"
else{}
JMenuItemjmiExitItem=newJMenuItem(”退出(X)"
jmiExitItem。
equals("
System。
exit(0);
intt=JOptionPane。
showConfirmDialog(N