java课程设计.docx
- 文档编号:11963021
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:39
- 大小:844.22KB
java课程设计.docx
《java课程设计.docx》由会员分享,可在线阅读,更多相关《java课程设计.docx(39页珍藏版)》请在冰豆网上搜索。
java课程设计
郑州轻工业学院
课程设计任务书
题目记事本程序
专业、班级互联网09-1班学号540912010120姓名孟繁兴
主要内容、基本要求、主要参考资料等:
使用图形用户界面实现。
能实现编辑、保存、另存为、查找替换等功能。
参考文献:
郑晓艳Java程序设计教程清华大学出版社第一版
雍俊海Java程序设计习题集清华大学出版社第一版
金保华Java程序设计实用教程科学出版社第一版
完成期限:
2011/7/2
指导教师签名:
课程负责人签名:
2011年7月2日
郑州轻工业学院本科
Java高级程序设计课程设计总结报告
设计题目:
记事本程序
学生姓名:
孟繁兴
院系:
国际教育学院
专业:
互联网
班级:
09-1
学号:
540912010120
指导教师:
黄永丽、宋保卫、金松河
2011年7月2日
一、引言
1.1项目的名称
记事本程序
1.2项目背景和目标
背景:
掌握图形用户界面设计方法,掌握常用swing组件的使用和事件处理程序设计;掌握文件的I/O操作或程序对数据库的访问。
目标:
利用eclipse开发环境,使用图形用户界面实现,能实现编辑、保存、另存为、查找替换等功能。
二、需求分析
2.1系统概述
使用图形用户界面实现,能实现编辑、保存、另存为、查找替换等功能。
2.2系统运行环境
Jdk-eclipse
2.3功能需求描述
能实现编辑、保存、另存为、查找替换等功能。
三、总体设计
3.1开发与设计的总体思想
a.分析题目
b.根据自己的想法搭建程序界面
c.为各个菜单项添加事件处理程序
3.2模块设计
a.主界面模块
图1
b.菜单栏界面模块
图2
图3
图4
图5
四、详细设计
1主界面模块
publicclassEditorextendsJFrameimplementsActionListener{
privateJMenufile,edit,view,about;
privateJMenuBarjmb;
privateJTextAreajta;
privateJScrollPanejsp;
privateJPopupMenupop;
privatebooleanwasSaved=true;
privateFilecurrentFile=null;
privateObjecttext;
publicstaticvoidmain(String[]args){
newEditor().init();
}
publicEditor(){
this.setName("文本编辑器1.0");
pop=newJPopupMenu();
file=newJMenu("文件");
edit=newJMenu("编辑");
view=newJMenu("查看");
about=newJMenu("关于");
jmb=newJMenuBar();
jta=newJTextArea(30,30);
jsp=newJScrollPane(jta);
jta.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseClicked(MouseEventarg0){
if(arg0.getButton()==MouseEvent.BUTTON1){
pop.setVisible(false);
}
}
@Override
publicvoidmouseReleased(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3){
pop.show(edit,e.getX(),e.getY());
pop.setVisible(true);
}
}
});
jta.getDocument().addDocumentListener(newDocumentListener(){
@Override
publicvoidchangedUpdate(DocumentEventarg0){
wasSaved=false;
}
@Override
publicvoidinsertUpdate(DocumentEventarg0){
wasSaved=false;
}
@Override
publicvoidremoveUpdate(DocumentEventarg0){
wasSaved=false;
}
});
JMenuItemitem;
file.add(item=newJMenuItem("新建"));
item.addActionListener(this);
file.add(item=newJMenuItem("打开..."));
item.addActionListener(this);
file.addSeparator();
file.add(item=newJMenuItem("保存"));
item.addActionListener(this);
file.add(item=newJMenuItem("另存为..."));
item.addActionListener(this);
file.addSeparator();
file.add(item=newJMenuItem("退出"));
item.addActionListener(this);
file.addSeparator();
edit.add(item=newJMenuItem("复制"));
item.addActionListener(this);
edit.add(item=newJMenuItem("粘贴"));
item.addActionListener(this);
edit.add(item=newJMenuItem("剪切"));
item.addActionListener(this);
edit.addSeparator();
edit.add(item=newJMenuItem("替换..."));
item.addActionListener(this);
edit.add(item=newJMenuItem("查找..."));
item.addActionListener(this);
edit.addSeparator();
edit.add(item=newJMenuItem("全选"));
item.addActionListener(this);
view.add(item=newJMenuItem("字体..."));
item.addActionListener(this);
view.add(item=newJMenuItem("颜色..."));
item.addActionListener(this);
about.add(item=newJMenuItem("关于..."));
item.addActionListener(this);
}
2.菜单栏界面模块
A.文件菜单模块
保存界面截图
图6
图7
保存界面代码
if(command.equals("保存")){
if(!
wasSaved){
if(currentFile==null){
JFileChooserjfc=newJFileChooser();
jfc.showSaveDialog(this);
Filef=jfc.getSelectedFile();
if(f!
=null){
savetoFile(f);
currentFile=f;
}
}else
savetoFile(currentFile);
}
return;
}
publicvoidsavetoFile(Filef){
FileWriterfw=null;
try{
fw=newFileWriter(f);
fw.write(jta.getText());
fw.flush();
wasSaved=true;
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(fw!
=null)
try{
fw.close();
}catch(IOExceptione){
}
}
}
打开已保存文件界面截图
图8
图9
打开已保存文件代码
if(command.equals("打开...")){
if(askSave()==0){
return;
}
if(askSave()==1){
jta.setText("");
}
JFileChooserjfc=newJFileChooser();
jfc.showSaveDialog(this);
Filef=jfc.getSelectedFile();
if(f!
=null){
currentFile=f;
openFile(f);
}
return;
}
publicvoidopenFile(Filef){
FileReaderfr=null;
BufferedReaderbr=null;
try{
fr=newFileReader(f);
br=newBufferedReader(fr);
Stringstr=null;
while((str=br.readLine())!
=null){
jta.append(str+"\n");
}
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
Thread.sleep(200);
}catch(InterruptedExceptione1){
}
wasSaved=false;
if(br!
=null)
try{
br.close();
}catch(Exceptione){
}
if(fr!
=null)
try{
fr.close();
}catch(Exceptione){
}
}
}
文件另存为界面截图
图10
图11
文件另存为代码
if(command.equals("另存为...")){
JFileChooserjfc=newJFileChooser();
jfc.showSaveDialog(this);
Filef=jfc.getSelectedFile();
if(f!
=null){
savetoFile(f);
currentFile=f;
}
return;
}
publicvoidsavetoFile(Filef){
FileWriterfw=null;
try{
fw=newFileWriter(f);
fw.write(jta.getText());
fw.flush();
wasSaved=true;
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(fw!
=null)
try{
fw.close();
}catch(IOExceptione){
}
}
}
退出界面截图
图12
图13
退出界面代码
if(command.equals("退出")){
if(askSave()==0){
return;
}else{
System.exit(0);
}
}
publicintaskSave(){
if(!
wasSaved){//如果没有保存
intchoice=JOptionPane.showConfirmDialog(this,"是否保存文件?
",
"保存文件?
",JOptionPane.YES_NO_CANCEL_OPTION);
switch(choice){
caseJOptionPane.OK_OPTION:
//要求保存文件
if(currentFile==null){//如果是新建文件
JFileChooserjfc=newJFileChooser();
jfc.showSaveDialog(this);
Filef=jfc.getSelectedFile();
if(f!
=null){
savetoFile(f);
currentFile=f;
}
}else{//如果是打开的旧文件
savetoFile(currentFile);
}
return1;
caseJOptionPane.NO_OPTION:
return1;//不保存文件
caseJOptionPane.CANCEL_OPTION:
return0;//取消
}
}
return-1;
}
}
B.编辑菜单模块
复制模块截图
图14
复制模块代码
if(command.equals("复制")){
jta.copy();
pop.setVisible(false);
}
粘贴模块截图
图15
图16
粘贴模块代码
if(command.equals("粘贴")){
jta.paste();
pop.setVisible(false);
}
剪切界面截图
图17
图18
剪切界面代码
if(command.equals("剪切")){
jta.cut();
pop.setVisible(false);
}
全选界面截图
图19
图20
全选界面代码
if(command.equals("全选")){
jta.selectAll();
}
C.查看菜单模块
颜色菜单模块截图
图21
图22
图23
图24
颜色菜单模块代码
if(command.equals("颜色...")){
Colorc=JColorChooser.showDialog(this,"请选择文字颜色",Color.BLACK);
jta.setForeground(c);
return;
}
五、实现和源程序
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjavax.swing.AbstractButton;
importjavax.swing.JColorChooser;
importjavax.swing.JFileChooser;
importjavax.swing.JFrame;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JOptionPane;
importjavax.swing.JPopupMenu;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.event.DocumentEvent;
importjavax.swing.event.DocumentListener;
importjavax.swing.text.JTextComponent;
publicclassEditorextendsJFrameimplementsActionListener{
privateJMenufile,edit,view,about;
privateJMenuBarjmb;
privateJTextAreajta;
privateJScrollPanejsp;
privateJPopupMenupop;
privatebooleanwasSaved=true;
privateFilecurrentFile=null;
privateObjecttext;
publicstaticvoidmain(String[]args){
newEditor().init();
}
publicEditor(){
this.setName("文本编辑器1.0");
pop=newJPopupMenu();
file=newJMenu("文件");
edit=newJMenu("编辑");
view=newJMenu("查看");
about=newJMenu("关于");
jmb=newJMenuBar();
jta=newJTextArea(30,30);
jsp=newJScrollPane(jta);
jta.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseClicked(MouseEventarg0){
if(arg0.getButton()==MouseEvent.BUTTON1){
pop.setVisible(false);
}
}
@Override
publicvoidmouseReleased(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3){
pop.show(edit,e.getX(),e.getY());
pop.setVisible(true);
}
}
});
jta.getDocument().addDocumentListener(newDocumentListener(){
@Override
publicvoidchangedUpdate(DocumentEventarg0){
wasSaved=false;
}
@Override
publicvoidinsertUpdate(DocumentEventarg0){
wasSaved=false;
}
@Override
publicvoidremoveUpdate(DocumentEventarg0){
wasSaved=false;
}
});
JMenuItemitem;
file.add(item=newJMenuItem("新建"));
item.addActionListener(this);
file.add(item=newJMenuItem("打开..."));
item.addActionListener(this);
file.addSeparator();
file.add(item=newJMenuItem("保存"));
item.addActionListener(this);
file.add(item=newJMenuItem("另存为..."));
item.addActionListener(this);
file.addSeparator();
file.add(item=newJMenuItem("退出"));
item.addActionListener(this);
file.addSeparator();
edit.add(item=n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计