Java程序设计综合实验报告文档格式.docx
《Java程序设计综合实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计综合实验报告文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
d)掌握布局、对话框的使用
e)掌握发布JAVA应用程序
二、设备与环境
PC兼容机、Windows操作系统、JAVA集成开发环境。
三、实验内容
1.完成留言板的需求分析。
2.留言板的总体设计,列出主要的类和类间关系。
3.列出具体的实现代码。
4.写出程序的实现细节,主要得功能界面,实现说明。
5.写出总结和评价
四、实验结果及分析
1.需求分析
本程序构建的写字板,其功能主要有以下几个方面:
(1)菜单中有“文件”“编辑”“格式”“帮助”四个主菜单
(2)文件菜单项包括“新建”“保存”“打开”“退出”四个功能项,分别用于新建文件,保存文件,打开文件,退出写字板。
(3)“编辑“中有“剪切”“复制”“粘贴”“撤销”,分别用于剪切文字,复制文字,粘贴文字,撤销文件编辑。
(4)“格式”菜单里有“字体”“颜色”两个功能,用于字体和颜色的改变。
(5)“帮助”菜单中有“关于”,关于写字板的一些详情。
、
功能模板说明图
其中保存功能,当点击保存时,出现一个对话框,当选择保存时,继续选择文件夹存入,当点击取消时则停止保存,回到文本窗口。
2.软件设计
(1)总体结构概述:
程序包括一个公共类wendang1,分别为窗口建立的类xieziban,其中所引用到了java提供的软件包java.awt.event.*,java.awt.*,java.io.*,javax.swing.*,实现各个组件的功能,在窗口建立的类为各个组件添加监听器,并实现监听器,在类xiziban中调用方法,以实现监听器,增强代码的可读性。
(2)软件设计思路
设计一个xieziban类,继承自JFrame类,并且在xieziban类利用了JTextArea创建面板窗口bCenter,利用JScrollPane创建滚动条scrollpane1,利用JFileChooser创建文件选择器fileChooser,利用JMenuBar创建并且实例化菜单栏,通过一些具体的方法实现各个功能键的功能。
建立构造函数Xieziban(Strings),通过该构造函数实现写字板程序的主要功能,运行是在主类中通过调用该构造函数来实现对写字板程序的基本操作。
3.程序代码
importjava.awt.event.*;
importjava.awt.*;
importjava.io.*;
importjavax.swing.*;
publicclasswendang1{
publicstaticvoidmain(Stringargs[]){
Xiezibanx=newXieziban("
简易写字板"
);
}
}
classXiezibanextendsJFrameimplementsActionListener{
Filefile=null;
JScrollPanescrollpane1;
JFileChooserfileChooser;
JMenuItemitem3,item4,item5,item1,item2,item6,item7,item8,item9,item11,item12;
JTextAreabCenter;
voidsetFrame(Strings)
{
setTitle(s);
setBounds(300,180,600,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
publicvoidsetMenu(){
JMenuBarjmb=newJMenuBar();
JMenumenu1=newJMenu("
文件"
JMenumenu2=newJMenu("
编辑"
JMenumenu3=newJMenu("
格式"
JMenumenu4=newJMenu("
帮助"
fileChooser=newJFileChooser("
F:
//"
item9=newJMenuItem("
新建"
item1=newJMenuItem("
打开"
item2=newJMenuItem("
保存"
item11=newJMenuItem("
退出"
item8=newJMenuItem("
撤销"
item3=newJMenuItem("
剪切"
item4=newJMenuItem("
复制"
item5=newJMenuItem("
粘贴"
item6=newJMenuItem("
字体"
item7=newJMenuItem("
颜色"
item12=newJMenuItem("
关于"
item9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
item1.setAccelerator(KeyStroke.getKeyStroke('
o'
));
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
item8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
item5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
menu1.add(item9);
menu1.addSeparator();
menu1.add(item1);
menu1.add(item2);
menu1.add(item11);
jmb.add(menu1);
setJMenuBar(jmb);
menu2.add(item8);
menu2.addSeparator();
menu2.add(item3);
menu2.add(item4);
menu2.add(item5);
jmb.add(menu2);
menu3.add(item6);
menu3.addSeparator();
menu3.add(item7);
jmb.add(menu3);
menu4.add(item12);
jmb.add(menu4);
Xieziban(Strings){//构造函数
setFrame(s);
//diaoyongfanfa
setMenu();
bCenter=newJTextArea();
//chuanjianwenbenqu
scrollpane1=newJScrollPane(bCenter);
add(scrollpane1,BorderLayout.CENTER);
bCenter.setLineWrap(true);
validate();
item2.addActionListener(this);
item3.addActionListener(this);
item4.addActionListener(this);
item5.addActionListener(this);
item6.addActionListener(this);
item7.addActionListener(this);
item9.addActionListener(this);
item11.addActionListener(this);
item12.addActionListener(this);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==item3)
bCenter.cut();
elseif(e.getSource()==item4)
bCenter.copy();
elseif(e.getSource()==item5)
bCenter.paste();
elseif(e.getSource()==item9)
bCenter.setText(null);
elseif(e.getSource()==item11)
System.exit(0);
elseif(e.getSource()==item2)
{
intn=fileChooser.showSaveDialog(this);
if(n==JFileChooser.APPROVE_OPTION){
Filefile=fileChooser.getSelectedFile();
try{
FileWriterwritefile=newFileWriter(file);
Strings=bCenter.getText();
writefile.write(s);
catch(IOExceptionee){}
elseif(e.getSource()==item7)
ColornewColor=JColorChooser.showDialog(this,"
调色板"
Color.red);
if(newColor!
=null)
bCenter.setForeground(newColor);
}
elseif(e.getSource()==item12)
{JDialogabout=newJDialog(this);
//关于对话框
about.setSize(200,150);
about.setVisible(true);
about.add(newJLabel("
版权所有,请勿模仿!
!
"
}
4.程序实现说明
(1)设计一个主类wendang1,创建主函数
(2)在主接口中设计一个xieziban容器继承自JFrame,并且在其中加入菜单栏,滚动条和文本选择器
classXiezibanextendsJFrameimplementsActionListener{
//文件为空
//滚动条
//文件选择器
//设置菜单栏
//文本区实例
//设置窗口出现的位置,尺寸
//设置窗口可见
//关闭窗口时退出程序
(3)在下拉菜单中加入子菜单并且监听,分别实现对文件的操作功能,点击不同的菜单项时,显示不同的窗口
publicvoidactionPerformed(ActionEvente){
//剪切功能
//复制功能
//粘贴功能
//新建功能
//退出功能
}//保存功能
}//颜色功能
}//关于功能
写字板的运行界面
文本颜色实现界面
保存文件界面
5.总结
经过差不多两个星期的努力,基本上完成了我的java综合实验——简易写字板程序,虽然有些功能还是没有实现,但通过这次的实验,是我将课本上学的理论知识用到了实践中,从而进一步巩固和丰富了我所学过的知识,让我更加深层次的认识到java及其强大的的功能,同时,做这门课程也增强了我的动手能力,为了完成这次实验,我在网上查找相关资料,在图书馆找相关的书看,在此过程中,无形的锻炼了我的思维分析和遇到问题及思想方法各种不同的途径解决问题的能力,但是,设计过程存在着一些问题,由于知识浅陋以及各种方面的原因,使有些功能没有实现,留下一点遗憾。
教师评价
评定项目
A
B
C
D
需求描述规范合理
ER图设计合理
数据库描述正确
数据分析和设计对应
系统实现有特色
系统实现
答辩演示
系统讲解
回答问题
报告规范
其他:
评价教师签名:
年月日