仿windowsJAVA课程设计汇本记事本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前言
随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
JAVA是实践性很强的课程。
课程设计是加强实践能力的一个强有力手段。
要求掌握JAVA的应用、编写、上机调试的基本方法。
本课程设计就是主要利用java语言编写的一个模仿windows 记事本的较简单的程序,实现了一些基本功能,要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现输入文本文件、控制保存文本信息到指定的文件的功能。
目录
一、需求分析 (1)
二、概要设计 (1)
三、详细设计 (2)
四、系统调试分析 (6)
五、课程设计心得体会 (7)
六、使用说明 (7)
七、参考文献及致谢 (7)
八、附录(程序源代码) (7)
一、需求分析
该课程设计报告里的简易记事本程序是使用Java程序设计语言编写的,要求实现记事本的基本功能,参考了windows中记事本的一些功能。
要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。
二、概要设计
1.1 系统主要功能
本程序是利用java程序设计语言编写的一个简单的记事本程序。
可以通过菜单栏和工具栏实现以下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。
1.2运行环境要求
(1) 实现设计的系统硬件需求
硬件配置的基本要求:
* 586以上的计算机
* 32MB以上的内存
* 彩色显示器
* 3.5寸高密软盘驱动器
* 光盘驱动器
* 4G以上硬盘空间
* 鼠标
(2) 实现设计的系统软件
* WINDOWS95或WINDOWS98
* Jcreator Pro全套软件
三、详细设计
设计思路:设计一个EditorDemo类,继承自JFrame类,并在EditorDemo类利用JtextPane创建面板窗口textPane,利用Jlabel创建状态栏statusBar,利用JFileChooser 创建文件选择器filechooser,利用JMenuBar创建并实例化菜单栏,利用JToolBar创建工具栏,再通过一些具体方法实现各功能键的功能。
建立构造函数public EditorDemo();通过该构造函数实现记事本程
序的主要功能,运行时在主类中通过调用该构造函数来实现对记事本程序的基本操作。
1:窗口设计
在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。
public class EditorDemo extends JFrame
JTextPane textPane = new JTextPane(); //创建文本窗格,编辑窗口
JFileChooser filechooser = new JFileChooser(); //文件选择器
setJMenuBar(createJMenuBar(actions)); //设置菜单栏
Container container = getContentPane(); //得到容器
container.add(createJToolBar(actions), BorderLayout.NORTH); //工具栏
container.add(textPane, BorderLayout.CENTER); //增加文本窗格
2:功能设计
(1)在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。
点击不同菜单项时,显示不同接口。
private JMenuBar createJMenuBar(Action[] actions) //创建菜单栏
JMenuBar menubar = new JMenuBar(); //实例化菜单栏
JMenu menuFile = new JMenu("文件(F)"); //实例化菜单
JMenu menuEdit = new JMenu("编辑(E)");
JMenu menuFormat = new JMenu("格式(O)");
JMenu menuFind = new JMenu("查找(V)");
JMenu menuAbout = new JMenu("帮助(H)");
menuFile.add(new JMenuItem(actions[0])); //增加新菜单项
menuFile.add(new JMenuItem(actions[1]));
menuFile.add(new JMenuItem(actions[2]));
menuFile.addSeparator();
menuFile.add(new JMenuItem(actions[7]));
menuEdit.add(new JMenuItem(actions[3]));
menuEdit.add(new JMenuItem(actions[4]));
menuEdit.add(new JMenuItem(actions[5]));
menuAbout.add(new JMenuItem(actions[6]));
menubar.add(menuFile); //增加菜单
menubar.add(menuEdit);
menubar.add(menuFormat);
menubar.add(menuFind);
menubar.add(menuAbout);
return menubar; //返回菜单栏
如下图:
(2)加入工具栏的功能键,通过工具栏实现对文本的基本操作。
Action[] actions = //Action数组,各种操作命令
new NewAction(),
new OpenAction(),
new SaveAction(),
new CutAction(),
new CopyAction(),
new PasteAction(),
new AboutAction(),
new ExitAction(),
private JToolBar createJToolBar(Action[] actions) //创建工具条
JToolBar toolBar = new JToolBar(); //实例化工具条
JButton bt = new JButton(actions[i]); //实例化新的按钮
toolBar.add(bt); //增加按钮到工具栏
如图所示:
(3)对每个菜单项进行注册监听。
点击不同功能键时,实现不同的操作,显示不同的窗口。
主要实现方法代码如下:
class NewAction extends AbstractAction { //实现新建文件命令功能
public NewAction() {
super("新建文本");}
public void actionPerformed(ActionEvent e) {
textPane.setDocument(new DefaultStyledDocument()); //清空文档}}
class OpenAction extends AbstractAction { //实现打开文件命令功能
public OpenAction() {
super("打开文本");}
public void actionPerformed(ActionEvent e) {
int i = filechooser.showOpenDialog(EditorDemo.this);
//显示打开文件对话框
if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中打开选项File f = filechooser.getSelectedFile(); //得到选择的文件
try {
InputStream is = new FileInputStream(f); //得到文件输入流
textPane.read(is, "d"); //读入文件到文本窗格
} catch (Exception ex) {
ex.printStackTrace(); //输出出错信息
}}}}
如下图:
class SaveAction extends AbstractAction { //实现保存文本命令
public SaveAction() {
super("保存文本");}
public void actionPerformed(ActionEvent e) {
int i = filechooser.showSaveDialog(EditorDemo.this);
//显示保存文件对话框
if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中保存按钮File f = filechooser.getSelectedFile(); //得到选择的文件
try {
FileOutputStream out = new FileOutputStream(f);
//得到文件输出流
out.write(textPane.getText().getBytes()); //写出文件
} catch (Exception ex) {
ex.printStackTrace(); //输出出错信息}}}}。