基于Java的记事本程序的设计与实现 下载本文

内容发布更新时间 : 2024/11/20 13:29:31星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于Java的记事本程序的设计与实现

作者:张会

来源:《电脑知识与技术》2017年第30期

摘要:该文利用 Java Swing,输入输出流,事件处理等技术实现了一个记事本小程序。记事本具有新建,保存,另存为,设置字体,设置颜色及退出等功能。记事本是一个集Java Swing、输入输出流、事件处理等知识综合应用的实例程序。 关键词:输入输入出流;事件处理;记事本;Java Swing

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)30-0088-03

Notepad(记事本)是Windows系统中一款小巧的纯文本编辑器,常用做源程序编辑器,具有打开速度快,文件小等特点,若只保存为纯文本文件最好使用记事本。文中的记事本采用Java Swing, 输入输出流、事件处理等相关技术进行设计及开发,使初学者快速掌握及使用Java中的Java Swing、输入输出流、事件处理等相关技术进行Java程序开发有较大帮助,并对《Java程序设计》课程相关知识点的综合实践教学具有一定指导作用。 1 记事本设计 1.1 功能设计

记事本能够实现以下功能:

1) 保存:对于新建文件,单击保存选项,则弹出保存对话框,实现对记事本中的内容命名并保存;对于已命名文件,单击保存选项,不会弹出保存对话框,直接实现原名保存。 2) 另存为:实现换名或换位置保存。

3) 打开:实现打开一个纯文本文件,如*.txt,*.cpp,*.java等纯文本文件。

4) 保存提示:对新建的文件输入了内容或对打开的文件作了修改并直接退出记事本时,会提示是否保存修改。

5) 设置字体颜色:Windows系统中的记事本,未实现对文本内容设置字体颜色功能,本程序实现了对记事本中的文字设置字体颜色。

6) 设置字体、字形、字号:实现了对文本设置字体、字形、字号功能。 1.2 界面设计

龙源期刊网 http://www.qikan.com.cn

Swing是Java的GUI(图形用户界面)工具包,包括了GUI组件,如:菜单栏、菜单项、按钮、面板、文本框等组件。本设计利用了Swing中的相关组件实现了如图1,图2所示的记事本。其中使用JFrame做为顶层窗体容器,在其上添加了JMenuBar(菜单栏),JMenu(记事本菜单)及菜单下的JMenuItem(菜单项)组件,另外在JFrame容器中添加了一个JPanel面板,再在JPanel中添加了一个JTextArea组件,JTextArea对象用来显示或编辑记事本文件中的内容。

图1 记事本界面1

图2 记事本界面2 2 记事功能实现

2.1 记事各功能事件处理实现

本记事本具有打开文件,新建文件,保存、另存为、字体设置、颜色设置等功能,当鼠标单击这些选项时,将会对应不同的功能操作。这些操作都是通过Java中的事件处理技术实现。当单击菜单中某菜单选项时,会产生一个ActionEvent事件,然后Java虚拟机检查是否有与该菜单项相关联的事件处理器,事件处理器实质是一个方法,如actionPerformed()方法,如果没有,不做任何处理;若有则将事件对象传递给与之关联的事件处理器方法作为事件处理方法参数,并自动调用事件处理方法。Java虚拟机通过传递过来的ActionEvent对象,获得事件发生时与该事件及事件源相关联的信息。Java组件通过形如addXxxListener()的方法添加事件监听器。

一个事件源可以添加多个监听器,而本记事本中的事件源是菜单中的各菜单项,在菜单项上发生鼠标单击事件,因此在每个菜单项上添加addActionListener()方法添加事件监听器,并实现事件处理actionPerformed()方法给出具体的功能实现。 为记事本中各菜单项添加事件监听器代码如下: newfile.addActionListener(this); open.addActionListener(this); save.addActionListener(this); exit.addActionListener(this);

龙源期刊网 http://www.qikan.com.cn

saveas.addActionListener(this); fontColor.addActionListener(this); font.addActionListener(this);

事件处理actionPerformed()方法代码如下: public void actionPerformed(ActionEvent e) {

JMenuItem item=(JMenuItem)e.getSource();//获得事件源 if(item==open){ openFile(); //打开文件 }else if(item==save){ saveFile(); //保存文件 }else if(item==saveas){ saveasFile(); //另存为文件 }else if(item==newfile){ newFile(); //新建文件 }else if(item==exit){

exitNotepad (); //退出记事本 }else if(item==fontColor){ setFontColor(); //字体颜色设置 }else if(item==font){ setFont(); //字体设置 }}