基于java的记事本程序课程设计.docx

上传人:b****7 文档编号:26351476 上传时间:2023-06-18 格式:DOCX 页数:33 大小:527.46KB
下载 相关 举报
基于java的记事本程序课程设计.docx_第1页
第1页 / 共33页
基于java的记事本程序课程设计.docx_第2页
第2页 / 共33页
基于java的记事本程序课程设计.docx_第3页
第3页 / 共33页
基于java的记事本程序课程设计.docx_第4页
第4页 / 共33页
基于java的记事本程序课程设计.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于java的记事本程序课程设计.docx

《基于java的记事本程序课程设计.docx》由会员分享,可在线阅读,更多相关《基于java的记事本程序课程设计.docx(33页珍藏版)》请在冰豆网上搜索。

基于java的记事本程序课程设计.docx

基于java的记事本程序课程设计

1问题描述

设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:

剪切、复制、粘贴、删除;还能实现保存、另存为、设置字体和颜色等功能。

这次课程设计由**、**和我三个人合作完成。

**主要负责3概要设计和5测试分析。

**4.1JM程序界面设计,我负责4.2JM4类的实现。

由于4.3事件处理和撰写程序关系密切,这两项都由**负责。

2需求分析

本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:

(1)、菜单中有“文件”、“编辑”、“格式”、“帮助”四个主菜单;

(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。

(3)、“编辑”中,有“剪切”、“复制”、“粘贴”三个子菜单:

用于剪切文字,复制文字,粘贴文字,删除文字。

(4)、“格式”中,有“字体”、“颜色”两个子菜单:

用于设置文字的字体而和颜色,字体有“宋体”、“楷体”、“黑体”颜色有“红”、“蓝”、“绿”。

(5)、“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。

3概要设计

3.1自定义类说明

3.1.1类名:

JM

(1)作用:

主类

(2)继承的父类:

JFrame类

(3)成员变量说明:

JMenuBarmb=newJMenuBar();//定义一个菜单项

/******定义各个菜单及其菜单项******/

JMenum1=newJMenu("文件(F)");

JMenuItemn=newJMenuItem("新建");

JMenuItemopen=newJMenuItem("打开(O)...Ctrl+O");

JMenuItemsave=newJMenuItem("保存(S)...Ctrl+S");

JMenuItemsave_as=newJMenuItem("另存为(A)...Ctrl+A");

JMenuItemexit=newJMenuItem("退出");

JMenum2=newJMenu("编辑(E)");

JMenuItemcopy=newJMenuItem("复制(C)Ctrl+C");

JMenuItemcut=newJMenuItem("剪切(X)Ctrl+X");

JMenuItempaste=newJMenuItem("粘贴(P)Ctrl+P");

JMenum3=newJMenu("格式(O)");

JMenuf1=newJMenu("字体(F)");

JMenuItemi11=newJMenuItem("宋体");

JMenuItemi12=newJMenuItem("楷体");

JMenuItemi13=newJMenuItem("黑体");

JMenucolor=newJMenu("颜色(C)");

JMenuItemi21=newJMenuItem("红");

JMenuItemi22=newJMenuItem("蓝");

JMenuItemi23=newJMenuItem("绿");

JMenum4=newJMenu("帮助(H)");

JMenuItemabout=newJMenuItem("关于");

/*****定义弹出菜单及其菜单项*****/

JPopupMenupm=newJPopupMenu();

JMenuItemitem1=newJMenuItem("复制");

JMenuItemitem2=newJMenuItem("剪切");

JMenuItemitem3=newJMenuItem("粘贴");

/***********编辑区**********/

Strings;

Containerc;

JTextAreaeditor=newJTextArea(s);

(4)主要方法说明:

JM()方法创建一个窗口并设置窗口的相应参数,以及把各个项目加到窗上

privatevoidaddJMenuBar()方法把各个菜单添加到菜单棒上privatevoidaddFileMenu()privatevoidaddEditMenu()privatevoidaddFormMenu()privatevoidaddHelpMenu()privatevoidaddJPopupMenu()各个方法则把相应的菜单项添加到各自的“文件”、“编辑”、“格式”、“帮助”菜单上,及弹出菜单上

3.1.2类名:

JM4

(1)作用:

主类

(2)继承的父类:

JM类

(3)主要成员方法说明:

编辑区键盘事件:

KeyListener类如果记事本的编辑区内用键盘输入了字符,就能够被程序监听;

editor.addKeyListener(newKeyAdapter()

{publicvoidkeyTyped(KeyEvente){flag=1;}});

窗口的事件监听:

windowListener类;

classwindowListenerextendsWindowAdapter

{

publicvoidwindowClosing(WindowEvente)

{

if(flag==0)System.exit(0);

elseclose();

}

}

 

菜单项的事件监听:

ActionListener类;

publicvoidactionPerformed(ActionEvente)

{

Fontf2=editor.getFont();

JMenuItemmi=(JMenuItem)e.getSource();

……

}

3.2程序流程图

3.2.1主流程图

 

3.2.2“文件”菜单操作流程图

 

3.2.3“编辑”菜单操作流程图

 

3.2.4“格式”菜单操作流程图

 

 

3.2.5弹出菜单操作流程图

 

3.2.6“帮助”菜单操作流程图

 

4详细设计

4.1GUI程序界面设计

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

publicclassJMextendsJFrame

{

JMenuBarmb=newJMenuBar();//定义一个菜单项

/******定义各个菜单及其菜单项******/

JMenum1=newJMenu("文件(F)");

JMenuItemn=newJMenuItem("新建");

JMenuItemopen=newJMenuItem("打开(O)...Ctrl+O");

JMenuItemsave=newJMenuItem("保存(S)...Ctrl+S");

JMenuItemsave_as=newJMenuItem("另存为(A)...Ctrl+A");

JMenuItemexit=newJMenuItem("退出");

JMenum2=newJMenu("编辑(E)");

JMenuItemcopy=newJMenuItem("复制(C)Ctrl+C");

JMenuItemcut=newJMenuItem("剪切(X)Ctrl+X");

JMenuItempaste=newJMenuItem("粘贴(P)Ctrl+P");

JMenum3=newJMenu("格式(O)");

JMenuf1=newJMenu("字体(F)");

JMenuItemi11=newJMenuItem("宋体");

JMenuItemi12=newJMenuItem("楷体");

JMenuItemi13=newJMenuItem("黑体");

JMenucolor=newJMenu("颜色(C)");

JMenuItemi21=newJMenuItem("红");

JMenuItemi22=newJMenuItem("蓝");

JMenuItemi23=newJMenuItem("绿");

JMenum4=newJMenu("帮助(H)");

JMenuItemabout=newJMenuItem("关于");

/*****定义弹出菜单及其菜单项*****/

JPopupMenupm=newJPopupMenu();

JMenuItemitem1=newJMenuItem("复制");

JMenuItemitem2=newJMenuItem("剪切");

JMenuItemitem3=newJMenuItem("粘贴");

/***********编辑区**********/

Strings;

Containerc;

JTextAreaeditor=newJTextArea(s);

Fontt=newFont("sanserif",Font.PLAIN,12);

JM()

{

super("记事本");

setSize(500,400);

try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}

catch(Exceptione){System.err.println("不能设置外观的原因;"+e);}

c=getContentPane();

c.add(newJScrollPane(editor));

addFileMenu();

addEditMenu();

addFormMenu();

addHelpMenu();

addJMenuBar();

addJPopupMenu();

setJMenuBar(mb);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

privatevoidaddFileMenu()

{

m1.add(n);

m1.add(open);

m1.add(save);

m1.add(save_as);

m1.addSeparator();

m1.add(exit);

m1.setFont(t);

}

privatevoidaddEditMenu()

{

m2.add(copy);

m2.add(cut);

m2.addSeparator();

m2.add(paste);

m2.setFont(t);

}

privatevoidaddFormMenu()

{

m3.add(f1);

m3.add(color);

m3.setFont(t);

f1.add(i11);

f1.add(i12);

f1.add(i13);

color.add(i21);

color.add(i22);

color.add(i23);

}

privatevoidaddHelpMenu()

{

m4.add(about);

m4.setFont(t);

}

privatevoidaddJMenuBar()

{

mb.add(m1);

mb.add(m2);

mb.add(m3);

mb.add(m4);

mb.setBackground(Color.cyan);

}

privatevoidaddJPopupMenu()

{

editor.add(pm);

pm.add(item1);

pm.add(item2);

pm.add(item3);

}

publicstaticvoidmain(Stringarg[]){newJM();}

}

4.2JM4类的实现

importjava.io.*;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.awt.Font.*;

publicclassJM4extendsJMimplementsActionListener,MouseListener//EventListener

{

intflag=0;

publicJM4()

{

/**********监听器接口**********/

n.addActionListener(this);

open.addActionListener(this);

save.addActionListener(this);

save_as.addActionListener(this);

exit.addActionListener(this);

copy.addActionListener(this);

cut.addActionListener(this);

paste.addActionListener(this);

i11.addActionListener(this);

i12.addActionListener(this);

i13.addActionListener(this);

i21.addActionListener(this);

i22.addActionListener(this);

i23.addActionListener(this);

about.addActionListener(this);

item1.addActionListener(this);

item2.addActionListener(this);

item3.addActionListener(this);

editor.addMouseListener(this);

addWindowListener(newwindowListener());

4.3事件处理

4.3.1编辑区键盘事件处理

/***************编辑区键盘事件******************/

editor.addKeyListener(newKeyAdapter()

{publicvoidkeyTyped(KeyEvente){flag=1;}});

}

4.3.2窗口事件处理

/**************窗口监听器**************/

classwindowListenerextendsWindowAdapter

{

publicvoidwindowClosing(WindowEvente)

{

if(flag==0)System.exit(0);

elseclose();

}

}

4.3.3菜单项事件处理

/***************菜单项监听器****************/

publicvoidactionPerformed(ActionEvente)

{

Fontf2=editor.getFont();

JMenuItemmi=(JMenuItem)e.getSource();

if(mi==n)//新建

{

if(flag==0)editor.setText("");

elseclose2();

}

if(mi==open)//打开

{loadFile();}

if(mi==save||mi==save_as)//保存和另存为

{saveFile();}

if(mi==exit)//退出

{if(flag==0)System.exit(0);close();}

if(mi==copy)//复制

{editor.copy();}

if(mi==cut)//剪切

{editor.cut();}

if(mi==paste)//粘贴

{editor.paste();}

if(mi==i11)//字体设置

{editor.setFont(newjava.awt.Font("宋体",java.awt.Font.PLAIN,f2.getSize()));}

if(mi==i12)

{editor.setFont(newjava.awt.Font("楷体",java.awt.Font.PLAIN,f2.getSize()));}

if(mi==i13)

{editor.setFont(newjava.awt.Font("黑体",java.awt.Font.PLAIN,f2.getSize()));}

if(mi==i21)//字体颜色

{editor.setForeground(Color.red);}

if(mi==i22)

{editor.setForeground(Color.blue);}

if(mi==i23)

{editor.setForeground(Color.green);}

if(mi==about)//帮助菜单的关于

{

Stringmessage="----记事本----"

+"由梁娟老师指导,罗世寿、罗军、刘艳共同完成\n感谢您的使用!

";

JOptionPane.showMessageDialog(JM4.this,message,"关于...",JOptionPane.PLAIN_MESSAGE);

}

/******弹出菜单********/

if(mi==item1)//复制

{editor.copy();}

if(mi==item2)//剪切

{editor.cut();}

if(mi==item3)//粘贴

{editor.paste();}

}

4.3.4编辑区的鼠标事件事件处理

/******编辑区的鼠标事件*********/

publicvoidmouseReleased(MouseEvente)

{

if(e.isPopupTrigger())

pm.show(editor,e.getX(),e.getY());

}

publicvoidmouseClicked(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmousePressed(MouseEvente){}

publicstaticvoidmain(String[]args){JM4d=newJM4();}}

5测试分析

(1)程序运行界面如下:

(2)“文件”菜单的菜单项:

(3)“编辑”菜单的菜单项:

(4)打开文件及另存文件时的界面:

由于打开文件和另存文件都要寻找路径,所以开始时界面相同。

(5)打开了某一个文本文件是的截图:

(6)设置字体为黑体和颜色为蓝色的截图:

(7)用弹出菜单实现复制、剪切、粘贴、的截图:

(8)记事本关闭、退出或新建时的截图:

当文件发生了剪切、删除、粘贴等操作,或者在编辑区中输入了字符,即文件进行了修改,当点击“文件”菜单中的“退出”项或者点击了窗口的关闭按钮时,就会弹出一个“保存文件?

”的对话框。

如果文件没有发生修改,关闭或者退出时,直接关闭了记事本程序。

由于其他的操作在截图里很难发现什么变化,所以只展示了上面的截图。

6课程设计总结

6.1设计体会

6.2致谢

在这次课程设计中,很感谢*老师的指导,将我从对于JAVA肤浅的认识引入到深层次的分析理解。

还感谢我们的任课老师*老师,由于她的悉心教导,我能用Java这一种语言进行比较熟练的编程。

还感谢和我一起做这次课程设计的组员****,由于我们的通力合作,这次课程设计得以顺利的完成。

 

参考文献

[1]孙全党,王吴迪,赵枫朝.Java程序设计应用教程[M].北京:

电子工业出版社,2006

[2]雷之宇.Java项目开发实践——网络篇[M].北京:

中国铁道出版社,2005

[3]赵玉阳.Java从入门到精通[M].北京:

清华大学出版社,2006

[4]李龙怡.Java编程实例讲解[M].北京:

高等教育出版社,2005

[5]李尊朝,苏军.Java语言程序设计[M].北京:

中国铁道出版社,2009

附录(源程序清单)

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

publicclassJMextendsJFrame

{

JMenuBarmb=newJMenuBar();//定义一个菜单项

/******定义各个菜单及其菜单项******/

JMenum1=newJMenu("文件(F)");

JMenuItemn=newJMenuItem("新建");

JMenuItemopen=newJMenuItem("打开(O)...Ctrl+O");

JMenuItemsave=newJMenuItem("保存(S)...Ctrl+S");

JMenuItemsave_as=newJMenuItem("另存为(A)...Ctrl+A");

JMenuItemexit=newJMenuItem("退出");

JMenum2=newJMenu("编辑(E)");

JMenuItemcopy=newJMenuItem("复制(C)Ctrl+C");

JMenuItemcut=newJMenuItem("剪切(X)Ctrl+X");

JMenuItempaste=newJMenuItem("粘贴(P)Ctrl+P");

JMenum3=newJMenu("格式(O)");

JMenuf1=newJMenu("字体(F)");

JMenuItemi11=newJMenuItem("宋体");

JMenuItemi12=newJMenuItem("楷体");

JMenuItemi13=newJMenuItem("黑体");

JMenucolor=newJMenu("颜色(C)");

JMenuItemi21=newJMenuItem("红");

JMenuItem

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1