JAVAGUI设计报告参考模板.docx
- 文档编号:7011075
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:13
- 大小:271.26KB
JAVAGUI设计报告参考模板.docx
《JAVAGUI设计报告参考模板.docx》由会员分享,可在线阅读,更多相关《JAVAGUI设计报告参考模板.docx(13页珍藏版)》请在冰豆网上搜索。
JAVAGUI设计报告参考模板
《Java程序设计》大作业报告
题目:
JAVA综合应用
物联网学院电信1102专业
学号0703110220
学生姓名曹晓桂
指导教师张景莉
评定成绩
二〇一四年十二
一、设计要求
1、目的
要求学生运用Java集成开发工具(如:
JCREATOR、Eclipse等),独立编写一个综合应用程序,使学生能够通过实践,将面向对象程序设计的理论、技术、方法和Java语言相结合,熟练使用Java类库进行一些较为复杂实例的应用系统程序设计,包括GUI设计、输入输出流、异常处理和Web应用程序设计等。
2、开发环境
1.系统环境:
Windows7系统
1.jdk版本:
jdk1.7.0_60
2.集成开发环境:
JCREATOR
3、设计要求:
创建一个GUI界面,运用一个包含2个选项卡的选项卡面板,实现以下功能:
“自我介绍”选项卡:
显示设计者的个人信息,包括学号、姓名、本人的两张不同的照片(至少一张为单人照)和英文自我简介(不得少于50个单词),然后在一个弹出的信息窗口中显示自我简介的字数。
“文件测试”选项卡:
对用户输入的一个名称进行判断,名称由文本框输入。
如果是一个文件名,则输出该文件相关属性(文件名、绝对路径和文件的长度等)。
如果是一个目录,则输出该目录下的对象个数。
如该名称不存在,则以此名称为名在当前目录下创建一个文件,内容自定。
二、设计思路
1、设计思路
根据老师给的设计要求,确定了如下的设计思路:
首先在JFrame窗口中创建一个JTabbedPane选项卡面板
在选项卡面板里创建2个选项卡,分别为“自我介绍”,“文件测试”。
在面板里分别添加三个子面板,位于每个面板的上中下。
根据设计要求在各子面板上添加组件。
给按钮添加事件响应。
测试功能是否实现,检查有无明显缺陷。
三、实现代码和运行结果
1、实现过程和代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.StringTokenizer;
publicclassJTabbedPaneDemoextendsJFrame{
privateJLabelname,number,clabel,dlabel,name2;
privateJTextFieldnameText,numberText,cText,dText,name2Text;
privateJTextAreatextArea1,textArea2;
privateJButtonshowButton,analyseButton,testButton,writeButton,
emptyButton;
privateFilefile;
privateStringstr=newString("Hiboysandgirls."+"\n"+
"Mynameiscaoxiaogui,IamfromNantong!
"+
"\n"+"Iamastudentfromjiangnanuniversityandmymajoriselectronicinformationengineering"+"\n"+
"IspendmostofmytimeonstudyandIlikeplaypingpang."+"\n"+
"Ihaveacquiredbasicknowledgeofmymajorduringmyschooltime."
+"\n"+"Thatisall.Thankyou!
");
publicstaticvoidmain(String[]args){
newJTabbedPaneDemo().setVisible(true);//设置组建可视
}
publicJTabbedPaneDemo()
{super("曹晓桂0703110220作业");//给窗口标题命名
JTabbedPanetabbedPane=newJTabbedPane();
//创建panel1
JLabellabel1=newJLabel("firstPane",SwingConstants.CENTER);
JPanelfirstPane=newJPanel();
firstPane.setLayout(newBorderLayout());
tabbedPane.addTab("自我介绍",null,firstPane,"FirstPanel");
//分别添加3个子面板
JPanel[]panel=newJPanel[3];
panel[0]=newJPanel();
panel[1]=newJPanel();
panel[2]=newJPanel();
firstPane.add(panel[0],BorderLayout.NORTH);
firstPane.add(panel[1],BorderLayout.CENTER);
firstPane.add(panel[2],BorderLayout.SOUTH);
//创建姓名,学号标签及文本框并添加
name=newJLabel("学号:
");
nameText=newJTextField(10);
nameText.setEditable(false);
number=newJLabel("姓名");
numberText=newJTextField(10);
numberText.setEditable(false);
panel[0].add(number);
panel[0].add(numberText);
panel[0].add(name);
panel[0].add(nameText);
//创建图像标签,对象,设置标签相对于图像的位置并添加
Iconbug1=newImageIcon("生活照.jpg");
clabel=newJLabel("照片1:
",bug1,SwingConstants.LEFT);
clabel.setHorizontalTextPosition(SwingConstants.CENTER);
clabel.setVerticalTextPosition(SwingConstants.BOTTOM);
Iconbug2=newImageIcon("生活照.jpg");
dlabel=newJLabel("照片2:
",bug2,SwingConstants.RIGHT);
dlabel.setHorizontalTextPosition(SwingConstants.CENTER);
dlabel.setVerticalTextPosition(SwingConstants.BOTTOM);
textArea1=newJTextArea(6,45);
panel[1].add(clabel);
panel[1].add(textArea1);
panel[1].add(dlabel);
//创建按钮并给按钮添加事件响应
showButton=newJButton("show");
showButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
showMessage();
}
});
analyseButton=newJButton("analyse");
analyseButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
showWordNumber();
}
});
panel[2].add(showButton);
panel[2].add(analyseButton);
//创建panel2
JLabellabel2=newJLabel("secondPane",SwingConstants.CENTER);
JPanelsecondPane=newJPanel();
secondPane.setLayout(newBorderLayout());
tabbedPane.addTab("文件测试",null,secondPane,"SecondPanel");
//分别添加3个子面板
JPanel[]panel2=newJPanel[3];
panel2[0]=newJPanel();
panel2[1]=newJPanel();
panel2[2]=newJPanel();
secondPane.add(panel2[0],BorderLayout.NORTH);
secondPane.add(panel2[1],BorderLayout.CENTER);
secondPane.add(panel2[2],BorderLayout.SOUTH);
//创建标签及文本框并添加
name2=newJLabel("请输入名称:
");
name2Text=newJTextField();
name2Text.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
if(!
name2Text.getText().equals(""))
testButton.setEnabled(true);
}
});
name2Text.setColumns(20);
panel2[0].add(name2);
panel2[0].add(name2Text);
textArea2=newJTextArea(6,45);
panel2[1].add(textArea2);
testButton=newJButton("test");
writeButton=newJButton("write");
writeButton.setEnabled(false);
emptyButton=newJButton("empty");
panel2[2].add(testButton);
panel2[2].add(writeButton);
panel2[2].add(emptyButton);
testButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
testAction();
}
});
writeButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
writeAction();
}
});
emptyButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
emptyAction();
}
});
getContentPane().add(tabbedPane);
setSize(800,300);//设置窗口大小
setVisible(true);
}
//显示信息与照片
publicvoidshowMessage(){
numberText.setText("0703110220");
nameText.setText("曹晓桂");
textArea1.setText(str);
}
//分析自我介绍的英文字数
publicvoidshowWordNumber(){
intwordNum=0;
Stringstr=textArea1.getText();
StringTokenizerst=newStringTokenizer(str);
while(st.hasMoreElements()){
st.nextElement();
wordNum++;
}
JOptionPane.showMessageDialog(null,"曹晓桂,您的简历字数为:
"+wordNum,"简历字数统计",
JOptionPane.PLAIN_MESSAGE);
}
//文件测试的实现
publicvoidtestAction(){
Stringstr=name2Text.getText();
if(!
str.equals("")){
file=newFile(str);
if(file.isFile()){
Stringpath=file.getAbsolutePath();
Stringlength=file.length()+"B";
textArea2.setText("这是一个文件,其相关属性为:
FileName:
"
+file.getName()+"\n"+"Path:
"+path+"\n"
+"Length:
"+length);
}elseif(file.isDirectory()){
String[]fileName=file.list();
textArea2.setText("这是一个目录,它下面有"+fileName.length
+"个对象。
");
}else{
textArea2.setText("该对象不存在,请按wirte键来创建该文件!
");
writeButton.setEnabled(true);
}
}else
JOptionPane.showMessageDialog(null,"请输入名称!
");
}
//以未知名称为文件名创建一个新文件
publicvoidwriteAction(){
try{
file.createNewFile();
Stringstr=newString("为新文件输入文件内容");
OutputStreamoutput=newFileOutputStream(file);
output.write(str.getBytes());
}catch(IOExceptione){
e.printStackTrace();
}
textArea2.setText("文件建立成功!
");
writeButton.setEnabled(false);
}
//清空文件测试面板中的内容
publicvoidemptyAction(){
name2Text.setText("");
textArea2.setText("");
}
}
2、运行结果
“自我介绍”选项卡实现
初始状态下,”analyse”命令按钮为不可用。
单击“show”命令按钮后的界面(“analyse”命令按钮变为可用):
单击”analyse”命令按钮后,弹出的信息窗口:
“文件测试”选项卡实现:
初始状态下,”write”命令按钮为不可用。
输入一个名称,单击”test”命令按钮,检测出该名称为一个文件名后的界面(输出该文件相关属性)
单击”empty”命令按钮后,清空文本框和信息框。
输入一个名称,单击”test”命令按钮,检测出该名称不存在时的界面(”write”命令按钮变为可用):
单击”write”命令按钮,以此名称为名在当前目录下创建一个文件,内容自定。
创建成功后,”write”命令按钮重新变为不可用。
输入一个名称,单击”test”命令按钮,检测出该名称为一个文件夹名后的界面:
四、问题解决与总结
1、遇到的问题与解决方法
遇到的问题
☆初始界面出现时,窗口太小,无法完全显示窗口内容。
☆英文单词计数不对,信息显示后自我介绍部分窗口会改变大小。
☆“自我介绍”选项卡面板中,照片横放且占据大部分界面。
☆输入文件夹名,文件夹存在但不显示其信息。
解决方法:
☆通过查找课本以及资料,重新设置调整窗口大小。
☆最初设置时每行字符数目设置过小引起。
☆照片本身过大。
2、实验总结
通过这次作业我学会了很多,也在自学的过程中积累了很多在平时学不到的东西。
虽然在过程中遇到了很多问题,但在同学以及的指导下,都能够把这些问题进行解决。
开始学习Java语言的时候,感觉十分吃力,有好多地方都不懂,尽管如此,我还是编了一些程序,编完之后才发现,其实只要自己用点心,认真点并不是特别难的。
虽然,在编程中也遇到了许多困难,很多自己不会,甚至从来没见过的难题,但在同学们的帮助下,我也学到了很多知识。
在本次大作业中我需要掌握图形用户界面基本组件,了解如何使用布局管理器对组件进行管理,掌握Java事件处理机制。
在实验过程中我遇到了一些问题,像是在组建的添加上,还有因为对GUI设计界面不熟悉,所以在操作起来很慢。
这次的作业主要涉及到GUI设计、输入输出流、异常处理等几个方面,其中主要是GUI设计,通过这次实践,让我能够将所学的Java理论与实际相结合,更深刻的领会Java作为一门面向对象的语言的严谨与优越,比如其它语言无法与之相比的异常处理特性,这种特性使得Java语言写成的程序更加安全。
参考文献
[1] 张桂珠,张平,陈爱国.Java面向对象程序设计[M].北京:
北京邮电大学出版社,2010:
139-167.
[2] 刘遵熊,聂国星.使用JAVA编程解析web界面[J].计算机系统应用,2004,1.
[3] 李英梅,夏伟宁,丁金凤.Java程序设计语言课程[J].计算机教育,2012,6.
致谢
整个一学期,对于java语言的学习,我收获了很多,感谢张老师,她严谨细致、一丝不苟的作风一直是我学习中的榜样,她循循善诱的教导和不
拘一格的思路给予我无尽的启迪。
在完成本次作业过程中得到同学邹利飞的悉心指导。
我多次询问她问题,她无私的为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。
经过这次作业,我收获颇丰,了解了java组建,包括窗口、框架、面板、文本编辑框、按钮等,尤其是像在面板设计与添加中,我们更应该多动手实际操作,这样才能够更多的发现问题,解决问题,从而更加深刻而牢固的掌握知识。
希望在以后工作和生活道路上,能够尽心尽力做好每一件事。
友情提示:
范文可能无法思考和涵盖全面,供参考!
最好找专业人士起草或审核后使用,感谢您的下载!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVAGUI 设计 报告 参考 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)