java课程设计Word格式文档下载.docx
《java课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java课程设计Word格式文档下载.docx(39页珍藏版)》请在冰点文库上搜索。
班级:
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);
}
}
publicvoidmouseReleased(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3){
pop.show(edit,e.getX(),e.getY());
pop.setVisible(true);
});
jta.getDocument().addDocumentListener(newDocumentListener(){
publicvoidchangedUpdate(DocumentEventarg0){
wasSaved=false;
publicvoidinsertUpdate(DocumentEventarg0){
publicvoidremoveUpdate(DocumentEventarg0){
JMenuItemitem;
file.add(item=newJMenuItem("
新建"
));
item.addActionListener(this);
打开..."
file.addSeparator();
保存"
另存为..."
退出"
edit.add(item=newJMenuItem("
复制"
粘贴"
剪切"
edit.addSeparator();
替换..."
查找..."
全选"
view.add(item=newJMenuItem("
字体..."
颜色..."
about.add(item=newJMenuItem("
关于..."
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(askSave()==0){
return;
if(askSave()==1){
jta.setText("
"
JFileChooserjfc=newJFileChooser();
jfc.showSaveDialog(this);
Filef=jfc.getSelectedFile();
if(f!
currentFile=f;
openFile(f);
publicvoidopenFile(Filef){
FileReaderfr=null;
BufferedReaderbr=null;
fr=newFileReader(f);
br=newBufferedReader(fr);
Stringstr=null;
while((str=br.readLine())!
jta.append(str+"
\n"
}catch(Exceptione){
try{
Thread.sleep(200);
}catch(InterruptedExceptione1){
wasSaved=false;
if(br!
br.close();
}catch(Exceptione){
if(fr!
fr.close();
文件另存为界面截图
图10
图11
文件另存为代码
if(command.equals("
savetoFile(f);
退出界面截图
图12
图13
退出界面代码
}else{
System.exit(0);
publicintaskSave(){
if(!
wasSaved){//如果没有保存
intchoice=JOptionPane.showConfirmDialog(this,"
是否保存文件?
"
保存文件?
JOptionPane.YES_NO_CANCEL_OPTION);
switch(choice){
caseJOptionPane.OK_OPTION:
//要求保存文件
if(currentFile==null){//如果是新建文件
}else{//如果是打开的旧文件
return1;
caseJOptionPane.NO_OPTION:
//不保存文件
caseJOptionPane.CANCEL_OPTION:
return0;
//取消
return-1;
}
B.编辑菜单模块
复制模块截图
图14
复制模块代码
jta.copy();
pop.setVisible(false);
粘贴模块截图
图15
图16
粘贴模块代码
jta.paste();
剪切界面截图
图17
图18
剪切界面代码
jta.cut();
全选界面截图
图19
图20
全选界面代码
jta.selectAll();
C.查看菜单模块
颜色菜单模块截图
图21
图22
图23
图24
颜色菜单模块代码
Colorc=JColorChooser.showDialog(this,"
请选择文字颜色"
Color.BLACK);
jta.setForeground(c);
五、实现和源程序
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;
edit.add(item=n