广东海洋大学java课程设计报告书记事本.docx
- 文档编号:30400223
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:57
- 大小:429.12KB
广东海洋大学java课程设计报告书记事本.docx
《广东海洋大学java课程设计报告书记事本.docx》由会员分享,可在线阅读,更多相关《广东海洋大学java课程设计报告书记事本.docx(57页珍藏版)》请在冰豆网上搜索。
广东海洋大学java课程设计报告书记事本
广东海洋大学
课程设计报告
课程名称
Java程序设计与开发技术课程设计
课程号
j1620204
时间
2016-2017学年第一学期
学院
数学与计算机学院
专业
计算机科学与技术
任课教师
甘元驹
班级
计科1141
学生姓名
阿稻
学生学号
201411621110
成绩:
评语:
报告正文
一,项目说明文档
1.任务与内容
设计一个简单的使用java语言编写的一个记事本程序,可以实现以下功能:
A.文件的新建,打开,保存和另存
B.对文件的编辑,如剪切,复制,粘贴,删除,还有查找替换等等
C.对文本中字体的设置
2.运行以及使用
使用eclipse运行源程序,则可以出现:
1)主界面
2)点击窗口的文件按钮,可以实现打开保存等操作
3)点击编辑菜单,可以实现对文本的复制粘贴剪切全选等功能
4)点击编辑菜单,可以实现查找替换功能
5)点击编辑菜单的全部替换功能,可以实现快速替换。
6)点击格式中的字体按钮,可以实现对文本区域的字体设置
2.程序设计思路和关键数据结构
在本程序中,在菜单栏上设置四大菜单,然后将相应的菜单项(功能)添加到各个菜单中,然后再具体实现各个菜单项的功能。
主要使用JButton,JFrame,Textarea(文本区),menu(创建菜单)等类和实现ActionListener,MouseListener,WindowListener等接口。
主界面
文件
编辑
格式
帮助
3.测试数据
1)编辑菜单中的替换功能
当查找文本中没有数据时,这时点击替换或全部替换,因为还没有内容,这这时会弹出一个消息对话框,提示“请先输入查找内容”。
2)编辑菜单中的查找功能
打开查找菜单对话框,如果没有输入查找内容,点击查找下一个,则会弹出一个消息对话框,说“请先输入查找内容”。
4.在设计实现和测试中发现的问题以及我的解决方案
1)在实现查找功能时,分为向上、向下查找,当第一次向下查找时,我们先设置rear变量为0,从头开始查找,当查找到时,对rear重新赋值,使它能够下次从正确位置开始遍历。
向上查找时,通过设置另一个变量head来控制实现。
2)在设计新建文件的类中,当用户点击新建时候,应该类中的成员变量(保存文件名,打开文件名)设为null,把是否第一次保存的标记设为false;
3)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
4)程序的健壮性问题:
例如空指针异常,在程序设计过程中,要先判断一个变量是否为null,才好继续判断接下来的条件,不然即使程序能运行,但是健壮性差,程序不严谨。
5.总结
通过本次java课程设计,能够检验自己学习的效果和能力,发现自己还是有很多知识还没有掌握或掌握得不够好,还是一知半解,以致在此过程中遇到了不少的问题难题。
可幸的是,通过自己的再次学习,上网查资料和请教同学,反复摸索,还是把相应的功能给实现和完善了。
虽然历时较久,但限于自己编程能力有限,这次的课程设计还是有一些不足之处,未能尽善尽美,这点有待假期再进一步深入学习,尽量把程序做到更好,从中获得更大的满足感和成就感。
每当能解决程序设计中的问题是,都会重新燃起一股编程热情,感觉还挺好玩的,希望接下来的学习中能够保持对编程的热爱,对学习的热情,真真正正学到一些有用的技能。
最后,特别感谢老师一学期以来的辛勤付出,谆谆教导,让我们接受并获得了新知识,新技能,开阔了视野,受益良多。
6.程序代码如下:
AboutDialog.java
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
publicclassAboutDialogimplementsActionListener{
publicJDialogDialog;
publicJButtonOK,Icon;
publicJLabelName,Version,Author,Java;
publicJPanelPanel;
AboutDialog(JFramenotepad,intx,inty){
Dialog=newJDialog(notepad,"关于记事本",true);
OK=newJButton("OK");
Icon=newJButton(newImageIcon("C:
/Users/Administrator/Desktop/Notepad.jpg"));
Name=newJLabel("记事本");
Version=newJLabel("版本1.0");
Java=newJLabel("JREVersion8.0");
Author=newJLabel("Copyright(c)2016Sky.Norightsreserved.");
Panel=newJPanel();
Colorc=newColor(0,95,191);
Name.setForeground(c);
Version.setForeground(c);
Java.setForeground(c);
Author.setForeground(Color.black);
Panel.setBackground(Color.WHITE);
OK.setFocusable(false);
Dialog.setSize(280,180);
Dialog.setLocation(x,y);
Dialog.setResizable(false);
Dialog.setLayout(null);
Panel.setLayout(null);
OK.addActionListener(this);
Icon.setFocusable(false);
Icon.setBorderPainted(false);
Author.setFont(newFont(null,Font.PLAIN,11));
Panel.add(Icon);
Panel.add(Name);
Panel.add(Version);
Panel.add(Author);
Panel.add(Java);
Dialog.add(Panel);
Dialog.add(OK);
Panel.setBounds(0,0,280,100);
OK.setBounds(180,114,72,26);
Name.setBounds(80,10,160,20);
Version.setBounds(80,27,160,20);
Author.setBounds(15,70,250,20);
Java.setBounds(80,44,160,20);
Icon.setBounds(16,14,48,48);
}
publicvoidactionPerformed(ActionEvente){
Dialog.setVisible(false);
}
}
ColorDialog.java
importjava.awt.Color;
importjava.awt.Component;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjava.awt.event.WindowEvent;
importjava.awt.event.WindowListener;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
publicclassColorDialogimplementsActionListener,WindowListener{
publicJDialogDialog;
publicJLabelNFL,NBL,SFL,SBL;
publicJTextAreaNormal,Selected;
publicJButtonNFB,NBB,SFB,SBB,OK,Cancel,Reset;
publicColorNFC,NBC,SFC,SBC;
publicColorChooserChooser;
publicColorDialog(JFramenotepad,intx,inty){
NFC=newColor(0,0,0);
NBC=newColor(249,249,251);
SFC=newColor(0,0,0);
SBC=newColor(191,207,223);
Dialog=newJDialog(notepad,"Color...",true);
NFL=newJLabel("NormalForeground:
");
NBL=newJLabel("NormalBackground:
");
SFL=newJLabel("SelectedForeground:
");
SBL=newJLabel("SelectedBackground:
");
Normal=newJTextArea("\nNormal正常");
Selected=newJTextArea("\nSelected选中");
NFB=newJButton("");
NBB=newJButton("");
SFB=newJButton("");
SBB=newJButton("");
OK=newJButton("OK");
Cancel=newJButton("Cancel");
Reset=newJButton("Reset");
Chooser=newColorChooser(Dialog,x+65,y-15);
Normal.setEditable(false);
Normal.setFocusable(false);
Normal.setFont(newFont("新宋体",0,16));
Normal.setForeground(NFC);
Normal.setBackground(NBC);
Selected.setEditable(false);
Selected.setFocusable(false);
Selected.setFont(Normal.getFont());
Selected.setForeground(SFC);
Selected.setBackground(SBC);
NFB.setBackground(NFC);
NBB.setBackground(NBC);
SFB.setBackground(SFC);
SBB.setBackground(SBC);
Dialog.setLayout(null);
Dialog.setLocation(x,y);
Dialog.setSize(410,220);
Dialog.setResizable(false);
Reset.setFocusable(false);
OK.setFocusable(false);
Cancel.setFocusable(false);
Dialog.add(Normal);
Dialog.add(Selected);
Dialog.add(NFL);
Dialog.add(NBL);
Dialog.add(SFL);
Dialog.add(SBL);
Dialog.add(SBB);
Dialog.add(SFB);
Dialog.add(NBB);
Dialog.add(NFB);
Dialog.add(OK);
Dialog.add(Cancel);
Dialog.add(Reset);
SBB.setBounds(144,100,60,22);
SFB.setBounds(144,70,60,22);
NBB.setBounds(144,40,60,22);
NFB.setBounds(144,10,60,22);
NFL.setBounds(10,10,130,22);
NBL.setBounds(10,40,130,22);
SFL.setBounds(10,70,130,22);
SBL.setBounds(10,100,130,22);
Normal.setBounds(220,10,174,56);
Selected.setBounds(220,66,174,56);
Reset.setBounds(10,160,74,24);
OK.setBounds(236,160,74,24);
Cancel.setBounds(320,160,74,24);
Dialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
Dialog.addWindowListener(this);
NFB.addActionListener(this);
NBB.addActionListener(this);
SFB.addActionListener(this);
SBB.addActionListener(this);
Reset.addActionListener(this);
OK.addActionListener(this);
Cancel.addActionListener(this);
}
publicvoidsetTextAreaColor(){
Normal.setForeground(NFB.getBackground());
Normal.setBackground(NBB.getBackground());
Selected.setForeground(SFB.getBackground());
Selected.setBackground(SBB.getBackground());
}
publicvoidcancel(){
Normal.setForeground(NFC);
Normal.setBackground(NBC);
Selected.setForeground(SFC);
Selected.setBackground(SBC);
NFB.setBackground(NFC);
NBB.setBackground(NBC);
SFB.setBackground(SFC);
SBB.setBackground(SBC);
Dialog.setVisible(false);
}
publicvoidactionPerformed(ActionEvente){
Objectobj=e.getSource();
if(obj==Reset){
NFB.setBackground(newColor(0,0,0));
NBB.setBackground(newColor(249,249,251));
SFB.setBackground(newColor(0,0,0));
SBB.setBackground(newColor(191,207,223));
setTextAreaColor();
}
elseif(obj==OK){
NFC=NFB.getBackground();
NBC=NBB.getBackground();
SFC=SFB.getBackground();
SBC=SBB.getBackground();
Dialog.setVisible(false);
}
elseif(obj==Cancel)
cancel();
else{
Chooser.init(((Component)obj).getBackground());
Chooser.Dialog.setVisible(true);
((Component)obj).setBackground(Chooser.New.getBackground());
setTextAreaColor();
}
}
publicvoidwindowClosing(WindowEvente){
cancel();
}
publicvoidwindowActivated(WindowEventarg0){}
publicvoidwindowClosed(WindowEventarg0){}
publicvoidwindowDeactivated(WindowEventarg0){}
publicvoidwindowDeiconified(WindowEventarg0){}
publicvoidwindowIconified(WindowEventarg0){}
publicvoidwindowOpened(WindowEventarg0){}
}
classColorChooserimplementsActionListener,WindowListener,KeyListener{
JDialogDialog;
JButtonChoice[][],Old,New,OK,Cancel;
JPanelPanel;
JTextFieldR,G,B;
JLabelOldLabel,NewLabel,RL,GL,BL;
ColorChooser(JDialogcolor,intx,inty){
Dialog=newJDialog(color,true);
Choice=newJButton[8][8];
Panel=newJPanel();
Old=newJButton("");
New=newJButton("");
OldLabel=newJLabel("Old:
");
NewLabel=newJLabel("New:
");
RL=newJLabel("R:
");
GL=newJLabel("G:
");
BL=newJLabel("B:
");
R=newJTextField("");
G=newJTextField("");
B=newJTextField("");
OK=newJButton("OK");
Cancel=newJButton("Cancel");
Panel.setLayout(newGridLayout(8,8,0,0));
inti=0,j=0;
Colorc;
Choice[0][7]=newJButton("");Choice[0][7].setBackground(newColor(255,255,255));
Choice[1][7]=newJButton("");Choice[1][7].setBackground(newColor(255,223,191));
Choice[2][7]=newJButton("");Choice[2][7].setBackground(newColor(255,207,207));
Choice[3][7]=newJButton("");Choice[3][7].setBackground(newColor(223,191,255));
Choice[4][7]=newJButton("");Choice[4][7].setBackground(newColor(207,207,255));
Choice[5][7]=newJButton("");Choice[5][7].setBackground(newColor(191,223,255));
Choice[6][7]=newJButton("");Choice[6][7].setBackground(newColor(207,255,207));
Choice[7][7]=newJButton("");Choice[7][7].setBackground(newColor(223,255,191));
for(i=0;i<8;i++){
c=Choice[i][7].getBackground();
for(j=0;j<8;j++){
if(j!
=7){
Choice[i][j]=newJButton("");
Choice[i][j].setBackground(newColor(c.getRed()*(j+1)/8,c.getGreen()*(j+1)/8,c.getBlue()*(j+1)/8));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广东 海洋大学 java 课程设计 报告书 记事本