《记事本》第1节:记事本项目简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《记事本》第1节:记事本项目简介相关的知识,希望对你有一定的参考价值。


记事本软件能够打开、编辑、保存各种类型的文本文档,也能在文本文档中查找特定的关键字,此外在还能设定文本文档的字体、字号以及风格等。

22.1.1记事本功能简介

记事本软件的运行结果如图22-1所示。

第二十二章《记事本》第1节:记事本项目简介_功能简介

图22-1记事本软件界面

从图21-1可以看到:记事本程序运行开始后,在没有保存文档的情况下,标题栏自动显示“记事本--未命名”,这个标题表示了当前记事本的未命名状态。记事本有各种功能菜单,用户在记事本中可以编辑文本,此外为方便用户操作,记事本还提供了与Windows记事本完全相同的右键功能菜单。

此外,记事本还能弹出字体设置对话框和关键字查找对话框,它们分别如图22-2和图22-3所示。

第二十二章《记事本》第1节:记事本项目简介_记事本_02

图22-2设置字体对话框

第二十二章《记事本》第1节:记事本项目简介_Swing_03

图22-3查找关键字对话框

22.1.2项目结构简介

记事本项目总共由7个类组成,它们分别是:

  • NoteBookFrame:记事本窗体类,它表示一个打开的记事本界面,是本项目最核心的类。
  • FontDialog:设置字体对话框。
  • FindDialog:查找关键字对话框。
  • ExampleFileFilter:文件类型过滤器。
  • SaveType:文件保存类型
  • SaveDialog:保存文件对话框
  • NoteBook:包含main()方法的类,它是程序启动的起点。

记事本软件的主体是一个文本区,这个文本区被放置在一个滚动面板中,下面的代码是对滚动面板和文本区的定义。

JScrollPane  JSPane;//放置文本区的滚动面板
JTextArea text;//记事本文本区

从图22-1可以看到:记事本界面除了一个文本区之外,其余的都是各种菜单和菜单项,这些菜单和菜单项的定义如下:

MenuBar mainMenuBar;//菜单蓝Jmenu fileMenu,editMenu,formatMenu,helpMenu;//各菜单

//File菜单的菜单项
JmenuItem newItem,openItem,saveItem, saveasItem,pageItem,printItem,exitItem;
// 编辑菜单的菜单项
JmenuItem undoItem,cutItem,copyItem,pasteItem,findItem,replaceItem,selectallItem,dateItem;
//检查框菜单项,用于设置是否自动换行
JCheckBoxMenuItem wrapItem;
//字体设置菜单项
JMenuItem fontItem;
//帮助主题和关于菜单项
JMenuItem helpItem,aboutItem;
//右键菜单
JPopupMenu popMenu;

读者可以先熟悉一下各个组件的名称,以便后面在阅读源代码时能够熟知这些组件的意义。

各个菜单项在被单击时都会产生事件,为处理这些事件还需要定义相应的监听器。需要说明:在本案例中所有菜单项使用同一个监听器,这样做是为了节约资源,并且能够使代码具有更强的可读性。以下是定义菜单项监听器的代码:

//定义一个监听器的实现类用以监听各菜单项事件

class ActionListenerImpl implements ActionListener
@Override
public void actionPerformed(ActionEvent e)
Object obj;
obj=e.getSource();
if (obj==exitItem)
doExit();
else if(obj==saveItem)
doSave();
else if(obj==saveasItem)
doSaveAs();
else if(obj==newItem)
doNewFile();
else if(obj==printItem)
doPrint();
else if(obj==openItem)
doOpen();
else if(obj==cutItem)
doCut();
else if(obj==copyItem)
doCopy();
else if(obj==pasteItem)
doPaste();
else if(obj==selectallItem)
doSelectAll();
else if(obj==dateItem)
doDateTime();
else if(obj==wrapItem)
doWrap();
else if (obj==findItem)
doFind();
else if (obj==fontItem)
doChangeFont();

除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!   

以上是关于《记事本》第1节:记事本项目简介的主要内容,如果未能解决你的问题,请参考以下文章

《记事本》第2节:记事本功能实现

项目:简单记事本

用记事本编写一个Servlet项目

一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

vs2008不能识别项目文件