JAVAGUI设计报告参考模板.docx

上传人:b****6 文档编号:7011075 上传时间:2023-01-16 格式:DOCX 页数:13 大小:271.26KB
下载 相关 举报
JAVAGUI设计报告参考模板.docx_第1页
第1页 / 共13页
JAVAGUI设计报告参考模板.docx_第2页
第2页 / 共13页
JAVAGUI设计报告参考模板.docx_第3页
第3页 / 共13页
JAVAGUI设计报告参考模板.docx_第4页
第4页 / 共13页
JAVAGUI设计报告参考模板.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

JAVAGUI设计报告参考模板.docx

《JAVAGUI设计报告参考模板.docx》由会员分享,可在线阅读,更多相关《JAVAGUI设计报告参考模板.docx(13页珍藏版)》请在冰豆网上搜索。

JAVAGUI设计报告参考模板.docx

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组建,包括窗口、框架、面板、文本编辑框、按钮等,尤其是像在面板设计与添加中,我们更应该多动手实际操作,这样才能够更多的发现问题,解决问题,从而更加深刻而牢固的掌握知识。

希望在以后工作和生活道路上,能够尽心尽力做好每一件事。

 

友情提示:

范文可能无法思考和涵盖全面,供参考!

最好找专业人士起草或审核后使用,感谢您的下载!

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

当前位置:首页 > 总结汇报

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

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