简单的记事本程序java编写.docx
- 文档编号:24177401
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:19
- 大小:200.25KB
简单的记事本程序java编写.docx
《简单的记事本程序java编写.docx》由会员分享,可在线阅读,更多相关《简单的记事本程序java编写.docx(19页珍藏版)》请在冰豆网上搜索。
简单的记事本程序java编写
华北科技学院计算机系
软件报告
课程名称Java程序设计A
实验学期2010至2011学年第二学期
学生所在系部管理系
年级三专业班级电子商务B09-2
学生姓名张莉学号
任课教师
实验成绩
计算机系制
《Java程序设计A》课程考试报告
开课实验室:
软件开发实验室年月日
实验题目
简易记事本软件
一、实验目的
a)掌握面向对象程序设计基本要素(封装、继承、多态)
b)掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法
c)掌握基于AWT的图形用户界面设计
i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、滚动条等。
ii.事件处理机制
d)掌握布局、对话框的使用
e)掌握发布JAVA应用程序
二、设备与环境
PC兼容机、Windows操作系统、JAVA集成开发环境。
三、实验内容
1.完成记事本的需求分析。
2.记事本的总体设计,列出主要的类和类间关系。
3.列出具体的实现代码。
4.写出程序的实现细节,主要得功能界面,实现说明。
5.写出总结和评价
四、实验结果及分析
1.需求分析
本程序是一个简单的记事本程序,其主要结构参照了Windows操作系统的记事本工具。
能够实现一些基本功能,主要有:
(1)具有编辑界面,能够实现文本的输入、删除等基本功能。
(2)具有菜单条,包含三个主菜单:
文件、编辑、帮助。
(3)各个主菜单分别拥有其菜单选项。
(4)文件主菜单含有新建、打开、保存、另存为、退出五个菜单选项;
(5)编辑主菜单含有剪切、粘贴、复制、全选四个菜单选项。
(6)帮助主菜单好友关于记事本信息的菜单选项,主要记录了记事本文件的基本信息。
(7)各个菜单选项能够实现其对应的功能。
(8)实现剪切、复制、粘贴、全选即编辑菜单的鼠标跳出菜单功能。
(9)各功能具有快捷键。
2.软件设计
(1)记事本的主体页面设计图:
(2)程序设计思想
①首先设计出整个记事本的主体框架,添加菜单栏(JMenu),添加菜单选项(JMenuItem)。
这部分应用到了Container、JMenuBar、JMenu、JMenuItem的构造方法,实现对记事本的基本页面设计。
2在页面中添加编辑局域,应用了JTextArea的构造方法。
3实现各个菜单选项的功能。
在具体的功能实现中,为每一个功能设计了一个类,通过监听调用类方法实现所需要实现的功能。
4程序中的类以及它们之间的关系:
本程序总共含有9个类:
Notebook()主类:
他实现了记事本的基本框架构造,以及对记事本各个功能的监听,并且调用各个功能的类方法。
在Notebook()中,加入了编辑菜单的弹出菜单功能。
在Notebook()主类中,通过事件监听调用了剪切、复制、保存等功能的类方法:
NewActionListener():
实现“新建”功能的类
SaveActionListener():
实现“保存”功能的类
OpenActionListener():
实现“打开”功能的类
ExitActionListener():
实现“退出”功能的类
CutActionListener():
实现“剪切”功能的类
CopyActionListener():
实现“粘贴”功能的类
SallActionListener():
实现“全选”功能的类
AbouthActionListener():
实现“关于”功能的类
整个程序框架:
3.程序代码
主函数:
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
publicclassMyNotebook{
publicstaticvoidmain(Stringargs[]){
newNotebook();
}}
Notebook()主类:
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
publicclassNotebookextendsJFrame{
Containercontainer;
JFileChooserfc=newJFileChooser();
Filefile=null;
JMenuBarmb;
JMenufileMenu,editMenu,helpMenu;
JMenuItemnewItem,openItem,saveItem,saveasItem,exitItem,cutItem,copyItem,pasteItem,sallItem,aboutItem;
JTextAreajta;
JPopupMenupopUpMenu;
publicNotebook()
{
//记事本主界面设计程序//
setTitle("记事本");
container=this.getContentPane();
container.setLayout(newBorderLayout());
jta=newJTextArea();
container.add(jta);
setVisible(true);
setSize(650,450);
mb=newJMenuBar();
setJMenuBar(mb);
//文件菜单及其菜单选项的程序设计//
fileMenu=newJMenu("文件");
newItem=newJMenuItem("新建");
//设置快捷键//
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
//设置“新建”事件监听//
newItem.addActionListener(newNewActionListener());
fileMenu.add(newItem);
fileMenu.addSeparator();
openItem=newJMenuItem("打开");
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));
openItem.addActionListener(newOpenActionListener());
fileMenu.add(openItem);
fileMenu.addSeparator();
saveItem=newJMenuItem("保存");
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
saveItem.addActionListener(newSaveActionListener());
fileMenu.add(saveItem);
fileMenu.addSeparator();
saveasItem=newJMenuItem("另存为");
saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
saveasItem.addActionListener(newSaveActionListener());
fileMenu.add(saveasItem);
fileMenu.addSeparator();
exitItem=newJMenuItem("退出");
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK));
exitItem.addActionListener(newExitActionListener());
fileMenu.add(exitItem);
mb.add(fileMenu);
//编辑菜单栏及其菜单选项程序设计//
editMenu=newJMenu("编辑");
cutItem=newJMenuItem("剪切");
cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));
cutItem.addActionListener(newCutActionListener());
editMenu.add(cutItem);
editMenu.addSeparator();
copyItem=newJMenuItem("复制");
copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK));
copyItem.addActionListener(newCopyActionListener());
editMenu.add(copyItem);
editMenu.addSeparator();
pasteItem=newJMenuItem("粘贴");
pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK));
pasteItem.addActionListener(newPasteActionListener());
editMenu.add(pasteItem);
editMenu.addSeparator();
sallItem=newJMenuItem("全选");
sallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));
sallItem.addActionListener(newSallActionListener());
editMenu.add(sallItem);
mb.add(editMenu);
//帮助菜单栏及其菜单选项程序设计//
helpMenu=newJMenu("帮助");
aboutItem=newJMenuItem("关于记事本");
aboutItem.addActionListener(newAbouthActionListener());
helpMenu.add(aboutItem);
mb.add(helpMenu);
//编辑菜单的鼠标监听及其弹出菜单的功能设计//
popUpMenu=editMenu.getPopupMenu();
jta.addMouseListener(
newMouseAdapter(){
publicvoidmouseReleased(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3)
popUpMenu.show(editMenu,e.getX(),e.getY());
}
publicvoidmouseClicked(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON1)
popUpMenu.setVisible(false);
}
}
);
}
//“新建”功能的实现//
classNewActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
jta.setText("");
file=null;
}
}
//“保存功能的实现”//
classSaveActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
if(file!
=null)fc.setSelectedFile(file);
intreturnVal=fc.showSaveDialog(Notebook.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=fc.getSelectedFile();
saving();}
}
voidsaving(){
try{
FileWriterWritef=newFileWriter(file);
Writef.write(jta.getText());
Writef.close();
}
catch(Exceptione){e.printStackTrace();}
}
}
//“打开”功能的实现//
classOpenActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
if(file!
=null)fc.setSelectedFile(file);
intreturnVal=fc.showOpenDialog(Notebook.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=fc.getSelectedFile();
unfold();}}
voidunfold(){
try{
FileReaderReadf=newFileReader(file);
intlen=(int)file.length();
char[]buffer=newchar[len];
Readf.read(buffer,0,len);
Readf.close();
jta.setText(newString(buffer));
}catch(Exceptione){e.printStackTrace();}
}
}
//“退出”功能的实现//
classExitActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
setVisible(false);
dispose();
System.exit(0);
}
}
//“剪切”功能的实现//
classCutActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
jta.cut();
}
}
//“复制”功能的实现//
classCopyActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
jta.copy();
}
}
//“粘贴”功能的实现//
classPasteActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
jta.paste();
}
}
//“全选”功能的实现//
classSallActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
jta.setSelectionStart(0);
jta.setSelectionEnd(jta.getText().length());
}}
//“关于”功能的实现//
classAbouthActionListenerimplementsActionListener
{
publicvoidactionPerformed(ActionEvente){
Stringmsg="这是一个记事本制作者:
张莉";
Stringtitle="记事本";
JOptionPane.showMessageDialog(container,msg,title,JOptionPane.INFORMATION_MESSAGE);
}}}
4.程序实现说明
程序运行出的主界面外观:
菜单选项栏的实现:
弹出菜单的实现:
打开功能的实现:
保存功能的实现:
另存为功能的实现:
复制、粘贴功能:
全选功能的实现:
关于记事本信息的功能实现:
5.总结
这是一个简单位的记事本java程序,实现了记事本的一些基本功能,例如打开、保存、复制、
粘贴、剪切等。
在编写程序时调用了Java中的包文件,有importjava.awt.*、importjava.awt.event.*、
importjava.io.*、importjavax.swing.*。
整个程序涉及到类的调用,事件的监听,以及布局添加
的java的一些基本知识。
程序中总共含有9个类,实现了整个程序的方法调用。
通过编写这个程序,让我加深了对java程序的理解,学会正确的运用各种功能的书写方法,
对类的编写以及调用有了更清楚的掌握。
在编写一些较复杂的方法,如保存、打开等,借鉴了
Windows记事本程序源代码的一些方法,通过改写和调整,使其在程序中得到实现,这让我学
到了更多的方法和技巧。
此次程序设计增强了我的编写动手能力,让我巩固了所学到的知识,虽然程序比较简单,只
实现了一些简单的基本功能,但通过这次实验设计,让我对以后的学习增强了信心,希望在今后
的学习中,可以巩固加深,完成更完整实用的程序。
教师评价
评定项目
A
B
C
D
评定项目
A
B
C
D
需求描述规范合理
ER图设计合理
数据库描述正确
数据分析和设计对应
系统实现有特色
系统实现
答辩演示
系统讲解
回答问题
报告规范
其他:
评价教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 记事本 程序 java 编写