记事本源程序.docx

上传人:b****7 文档编号:9244961 上传时间:2023-02-03 格式:DOCX 页数:17 大小:18.45KB
下载 相关 举报
记事本源程序.docx_第1页
第1页 / 共17页
记事本源程序.docx_第2页
第2页 / 共17页
记事本源程序.docx_第3页
第3页 / 共17页
记事本源程序.docx_第4页
第4页 / 共17页
记事本源程序.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

记事本源程序.docx

《记事本源程序.docx》由会员分享,可在线阅读,更多相关《记事本源程序.docx(17页珍藏版)》请在冰豆网上搜索。

记事本源程序.docx

记事本源程序

importjava.awt.CheckboxMenuItem;

importjava.awt.Color;

importjava.awt.Container;

importjava.awt.FileDialog;

importjava.awt.FlowLayout;

importjava.awt.Font;

importjava.awt.GraphicsEnvironment;

importjava.awt.Menu;

importjava.awt.MenuBar;

importjava.awt.MenuItem;

importjava.awt.MenuShortcut;

importjava.awt.TextArea;

importjava.awt.Toolkit;

importjava.awt.Window;

importjava.awt.datatransfer.Clipboard;

importjava.awt.datatransfer.DataFlavor;

importjava.awt.datatransfer.StringSelection;

importjava.awt.datatransfer.Transferable;

importjava.awt.datatransfer.UnsupportedFlavorException;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyEvent;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.util.logging.Level;

importjava.util.logging.Logger;

importjavax.swing.JButton;

importjavax.swing.JColorChooser;

importjavax.swing.JComboBox;

importjavax.swing.JDialog;

importjavax.swing.JFileChooser;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

publicclassnotebook{

//记事本的具体实现类

privatestaticfinallongserialVersionUID=1L;

privateTextAreacontent;

privateStringfilePath="";//先让路径为空

Colorcolor=Color.red;

ToolkittoolKit=Toolkit.getDefaultToolkit();

Clipboardclipboard=toolKit.getSystemClipboard();

publicnotebook(){

//创建一个JFrame对象;并设置相关属性

finalJFramejf=newJFrame("记事本");

jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

jf.setBounds(100,100,500,500);

jf.setResizable(true);

jf.setVisible(true);

//创建菜单栏

MenuBarmenu=newMenuBar();

jf.setMenuBar(menu);

//创建并添加文本框

content=newTextArea("",50,50,TextArea.SCROLLBARS_VERTICAL_ONLY);

jf.add(content);

content.setVisible(true);

content.requestFocusInWindow();

//菜单栏添加内容

Menufilemenu=newMenu("文件");

Menueditmenu=newMenu("编辑");

Menuformatmenu=newMenu("格式");

menu.add(filemenu);

menu.add(editmenu);

menu.add(formatmenu);

//创建文件菜单上的各个菜单项并添加到菜单上

MenuItemnewitem=newMenuItem("新建(N)");

newitem.setShortcut(newMenuShortcut(KeyEvent.VK_N,false));

filemenu.add(newitem);

MenuItemopenitem=newMenuItem("打开(O)");

openitem.setShortcut(newMenuShortcut(KeyEvent.VK_O,false));

filemenu.add(openitem);

MenuItemsaveitem=newMenuItem("保存(S)");

saveitem.setShortcut(newMenuShortcut(KeyEvent.VK_S,false));

filemenu.add(saveitem);

MenuItemsaveasitem=newMenuItem("另存为(A)");

saveasitem.setShortcut(newMenuShortcut(KeyEvent.VK_A,false));

filemenu.add(saveasitem);

filemenu.addSeparator();

MenuItemexititem=newMenuItem("退出(X)");

exititem.setShortcut(newMenuShortcut(KeyEvent.VK_X,false));

filemenu.add(exititem);

//添加监听器来实现文件菜单上的各个菜单项的功能

//新建菜单项的功能实现

newitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Stringcon=content.getText();

if(!

con.equals("")){//文本域里文本不为空

intresult=JOptionPane.showConfirmDialog(

null,("是否要保存?

"),("保存文件..."),JOptionPane.YES_NO_CANCEL_OPTION);

if(result==JOptionPane.NO_OPTION){//不保存

content.setText("");

}

elseif(result==JOptionPane.CANCEL_OPTION){//取消新建

}

elseif(result==JOptionPane.YES_OPTION)//选择保存

{

JFileChooserjfc=newJFileChooser();//用于选择保存路径的文件名

intbcf=jfc.showSaveDialog(jf);

if(bcf==JFileChooser.APPROVE_OPTION){

try{

//保存文件

BufferedWriterbfw=newBufferedWriter(

newFileWriter(newFile(jfc.getSelectedFile().getAbsolutePath()+".txt")));

filePath=jfc.getSelectedFile().getAbsolutePath()+".txt";//获取文件保存的路径

bfw.write(con);//向文件写出数据

bfw.flush();

bfw.close();//关闭输出流

}catch(IOExceptionex){

Logger.getLogger(notebook.class.getName()).log(Level.SEVERE,null,ex);

}

newnotebook();//新建文本文件

}

}

}

}

});

//打开菜单项的功能实现

openitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

FileDialogdialog=newFileDialog(newJFrame(),"打开....",FileDialog.LOAD);

dialog.setVisible(true);

filePath=dialog.getDirectory()+dialog.getFile();

System.out.println(filePath);

Filefile=newFile(filePath);

BufferedReaderbr=null;

StringBuildersb=newStringBuilder();

try{

br=newBufferedReader(newFileReader(file));

Stringstr=null;

while((str=br.readLine())!

=null){

sb.append(str).append("\n");

}

content.setText(sb.toString());

}

catch(FileNotFoundExceptione1){

e1.printStackTrace();

}

catch(IOExceptione1){

e1.printStackTrace();

}

finally{

if(br!

=null){

try{

br.close();

}

catch(IOExceptione1){

e1.printStackTrace();

}

}

}

}

});

//保存菜单项的功能实现

saveitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

FileDialogdialog=newFileDialog(newJFrame(),"保存....",FileDialog.SAVE);

dialog.setVisible(true);

filePath=dialog.getDirectory()+dialog.getFile();

if(filePath.equals("")){//没有路径时,就另存为

JFileChooserjfc=newJFileChooser();//用于选择保存路径的文件名

intbcf=jfc.showSaveDialog(jf);//弹出保存窗口

if(bcf==JFileChooser.APPROVE_OPTION){

try{

//保存文件

BufferedWriterbfw=newBufferedWriter(

newFileWriter(newFile(jfc.getSelectedFile().getAbsolutePath()+".txt")));

filePath=jfc.getSelectedFile().getAbsolutePath();

bfw.write(content.getText());//向文件写出数据

bfw.flush();

bfw.close();//关闭输出流

}catch(IOExceptionex){

Logger.getLogger(notebook.class.getName()).log(Level.SEVERE,null,ex);

}

}

}

else{//路径不为空时,保存在原来的路径下

try{

//保存文件

BufferedWriterbfw=newBufferedWriter(

newFileWriter(

newFile(filePath)));

bfw.write(content.getText());//向文件写出数据

bfw.flush();

bfw.close();//关闭输出流

}catch(IOExceptionex){

Logger.getLogger(notebook.class.getName()).log(Level.SEVERE,null,ex);

}

}

}

});

//另存为菜单项的功能实现

saveasitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

JFileChooserjfc=newJFileChooser();//用于选择保存路径的文件名

intbcf=jfc.showSaveDialog(jf);//弹出保存窗口

if(bcf==JFileChooser.APPROVE_OPTION){

try{

//保存文件

BufferedWriterbfw=newBufferedWriter(

newFileWriter(newFile(jfc.getSelectedFile().getAbsolutePath()+".txt")));

filePath=jfc.getSelectedFile().getAbsolutePath();

bfw.write(content.getText());//向文件写出数据

bfw.flush();

bfw.close();//关闭输出流

}catch(IOExceptionex){

Logger.getLogger(notebook.class.getName()).log(Level.SEVERE,null,ex);

}

}

}

});

//退出菜单项的功能实现

exititem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Object[]options={"是的,我要退出","不好意思,点错了"};

intoption=JOptionPane.showOptionDialog(null,"您确定要退出吗?

",

"退出提示....",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,

null,options,options[0]);

if(option==JOptionPane.OK_OPTION){

System.exit(0);

}

}

});

//创建编辑菜单上的各个菜单项并添加到菜单上

MenuItemundoitem=newMenuItem("撤销(U)");

undoitem.setShortcut(newMenuShortcut(KeyEvent.VK_Z,false));

editmenu.add(undoitem);

MenuItemcutitem=newMenuItem("剪切(T)");

cutitem.setShortcut(newMenuShortcut(KeyEvent.VK_X,false));

editmenu.add(cutitem);

MenuItemcopyitem=newMenuItem("复制(C)");

copyitem.setShortcut(newMenuShortcut(KeyEvent.VK_C,false));

editmenu.add(copyitem);

MenuItempasteitem=newMenuItem("粘贴(P)");

pasteitem.setShortcut(newMenuShortcut(KeyEvent.VK_V,false));

editmenu.add(pasteitem);

MenuItemdeleteitem=newMenuItem("删除(L)");

deleteitem.setShortcut(newMenuShortcut(KeyEvent.VK_DELETE,false));

editmenu.add(deleteitem);

//添加监听器来实现编辑菜单上的各个菜单项的功能

//撤销菜单项的功能实现

undoitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

}

});

//剪切菜单项的功能实现

cutitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Stringtext=content.getSelectedText();

StringSelectionselection=newStringSelection(text);

clipboard.setContents(selection,null);

if(text.length()==0){

return;

}

else{

content.replaceRange("",content.getSelectionStart(),content.getSelectionEnd());

}

}

});

//复制菜单项的功能实现

copyitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Stringtext=content.getSelectedText();

StringSelectionselection=newStringSelection(text);

clipboard.setContents(selection,null);

}

});

//粘贴菜单项的功能实现

pasteitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Transferablecontents=clipboard.getContents(this);

Stringstr=null;

try{

str=(String)contents.getTransferData(DataFlavor.stringFlavor);

}catch(UnsupportedFlavorExceptione1){

e1.printStackTrace();

}catch(IOExceptione1){

e1.printStackTrace();

}

if(str==null)

return;

try{

content.replaceRange(str,content.getSelectionStart(),content.getSelectionEnd());

}

catch(Exceptione1){

e1.printStackTrace();

}

}

});

//删除菜单项的功能实现

deleteitem.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

content.replaceRange("",content.getSelectionStart(),content.getSelectionEnd());

}

});

//创建格式菜单上的各个菜单项并添加到菜单上

MenuItemworditem=newMenuItem("字体(F)");

formatmenu.add(worditem);

worditem.setEnabled(true);

formatmenu.addSeparator();

MenuItemcoloritem=newMenuItem("字体颜色(C)");

formatmenu.add(colorit

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1