

免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java语言程序设计实验报告实验三: 图形用户界面设计 专 业 信息管理与信息系统班 级 姓 名 学 号 指导教师 完成日期 2014.12.09 2014 年 秋季 学期实验三:图形用户界面设计3.1实验性质验证性实验(4学时)3.2实验目的swing是java基础类库 (jfc)的组成部分,它实现一组新的gui组件,具有可插接的外观感觉效果。swing是以100%纯java实现的,且以jdk1.1 lightweight ui框架为基础。可插接的外观感觉效果使您只需要设计一个gui组件集,就可以自动得到与任意os平台相吻合的外观感觉效果。swing 组件包含两个已有awt组件集的100%纯java版本,外加一个高级组件的全集。本实验的目的在于掌握 java 的 gui 设计技术,熟悉 awt 和 swing(重点)的应用技巧。3.3实验内容1) 回顾awt的应用方法2) 体会格网布局方案及其应用3) 观察可视化组件的事件监听机制和处理方法4) 查看基本的swing用法5) 体验jtable组件的运用机制6) 编写一个带有条目的列表框7) 创建一个菜单8) 制作一个图书证信息输入窗体和一个借用物品窗体9) 编写基本的事件处理,交换窗体背景色彩10) 利用合适的布局和swing控件完成一个简单的数据计算任务11) 回答思考问题3.4实验准备将以下代码输入netbeans中,若代码存在错误请进行修改,查看输出成果,并对各行语句进行解释,将解释内容和运行结果写入实验报告。(1)awt简单示例import java.awt.*;public class awtdemo extends framelabel lblname,lblage,lbladdr; /创建lblname,lblage,lbladdr对象textfield txtname,txtage;/ 创建txtname对象textarea txtaddr;awtdemo (string s)super(s);setlayout(new flowlayout();lblname=new label(姓名:); /设置lblname属性为姓名:lblage=new label(年龄:); /设置lblage e属性为年龄:lbladdr=new label(地址);/设置lbladdr属性为地址:txtname=new textfield(15); /设置txtname属性txtage=new textfield(15); /设置txtage属性txtaddr=new textarea(北京n海淀区n982号,10,50,1); /初始化txtaddradd(lblname); /添加lblname组件add(txtname); / 添加txtname组件add(lblage); /添加lblage组件add(txtage); /添加txtage组件add(lbladdr); /添加lblname组件add(txtaddr); / 添加txtaddr组件public static void main(string arg)guidemo obj=new guidemo(正在测试组件);/创建obj对象obj.setsize(400,300); /调用setsize()方法obj.show();/显示txtadd相关内容*加粗行改为:awtdemo obj=new awtdemo(正在测试组件);运行结果界面为:(2)网格布局示例import java.awt.*;import javax.swing.*;public class gridlayoutdemo public static void main(string args) jframe frame=new jframe(gridlayout布局);/创建jframe frame对象,设置属性 container c=frame.getcontentpane();/获取容器 gridlayout g=new gridlayout(3,2,5,5); /设置面板属性 c.setlayout(g); c.add(new jbutton(1);/添加jbutton组件,且其text属性设为1 c.add(new jbutton(2);/添加jbutton组件,且其text属性设为2 c.add(new jbutton(3);/添加jbutton组件,且其text属性设为3 c.add(new jbutton(4);/添加jbutton组件,且其text属性设为4 c.add(new jbutton(5);/添加jbutton组件,且其text属性设为5 c.add(new jbutton(6);/添加jbutton组件,且其text属性设为6 frame.setsize(200,250); /设置高度与宽度 frame.setvisible(true); /窗体显示 运行结果界面为:(3)简单事件示例import java.awt.*;import java.awt.event.*;public class eventdemo extends frame implements actionlistenertextfield txtf; / 声明textfield型变量txtftextarea txta; / 声明textarea型变量txta eventdemo(string title)super(title); /设置窗体标题setlayout(new flowlayout();/设置面板布局txtf=new textfield(20); /设置文本宽度txta=new textarea(6,20); /设置文本宽度与高度add(txtf); /添加组件txtfadd(txta); / 添加组件txtatxtf.addactionlistener(this);addwindowlistener(new windowadapter()public void windowclosing(windowevent e)system.exit(0); / 给窗口注册一个事件监听器,当你点了窗口右上方的叉号时此方法被调用);setsize(200,200); /设置宽度与高度setvisible(true); /窗体显示public void actionperformed(actionevent e)txta.settext(txtf.gettext();public static void main(string arg)eventdemo obj=new eventdemo(事件示例);运行结果界面为:(4)swing示例import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class jlistdemo implements listselectionlistener jlist list = null;jlabel label = null;string s = 美国, 中国, 英国, 法国, 意大利, 澳洲, 韩国 ;public jlistdemo() jframe f = new jframe(jlist);/创建jframe f对象,并设置titlecontainer contentpane = f.getcontentpane();contentpane.setlayout(new borderlayout();label = new jlabel();/对象初始化list = new jlist(s); /list初始化list.setvisiblerowcount(5); / 设定列表方框的可见栏数list.setborder(borderfactory.createtitledborder(您最喜欢到哪个国家玩呢?);list.addlistselectionlistener(this);contentpane.add(label, borderlayout.north);/ 给列表方框添加滚动栏contentpane.add(new jscrollpane(list), borderlayout.center);f.pack();/依据f组件的大小设置容器的大小f.show();/使窗体f显示f.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit(0););public void valuechanged(listselectionevent e) int tmp = 0;string stmp = 您目前选取:; /利用jlist类所提供的getselectedindices()方法可得到用户所选取的所有项目int index = list.getselectedindices(); /index值,这些index值由一个int array返回.for (int i = 0; i 120) mt.mysetvalueat(new integer(119),row,4); else mt.mysetvalueat(new integer(total),row,4); mt.mysetvalueat(new boolean(false),row,5); else if(total 120) / 判断该学生是否及格 mt.mysetvalueat(new boolean(true),row,5); else mt.mysetvalueat(new boolean(false),row,5); mt.mysetvalueat(new integer(total),row,4); table.repaint(); public static void main(string args) new jtabledemo(); class mytable extends abstracttablemodel object p = 小明, 广州,new integer(66), new integer(32), new integer(98), new boolean(false),new boolean(false), 小军, 上海,new integer(85), new integer(69), new integer(154), new boolean(true),new boolean(false),小东, 北京,new integer(88), new integer(70), new integer(158), new boolean(false),new boolean(false); string n = 姓名,居住地,语文,数学,总分,及格,作弊; / 返回总列数 public int getcolumncount() return n.length; / 返回总行数 public int getrowcount() return p.length; / 返回列名 public string getcolumnname(int col) return ncol; / 返回table的一个字段,若没有设置列标题则返回默认值,依次为a,b,c,.z,aa,ab,.; / 若无此column,则返回一个空的string public object getvalueat(int row, int col) return prowcol; / 返回字段数据类型的类名称public class getcolumnclass(int c) return getvalueat(0, c).getclass(); / 返回指定字段是否可修改public boolean iscelleditable(int rowindex, int columnindex) return true; / 给指定字段赋值,并通知table已修改public void setvalueat(object value, int row, int col) prowcol = value; firetablecellupdated(row, col); / 自定义修改某指定字段 public void mysetvalueat(object value, int row, int col) prowcol = value; 显示界面为: 3.5实验步骤(1)利用list类编写如下界面在jframe窗体“设计”面板中:1. 添加“标签”,编辑文本“what are you like :”。2. 添加“列表”,属性中“model”中编辑文本“apple banana grape orange peach lemon”。3. “列表”属性中“selectionbackground”更改为“白色”。4. “列表”属性中“selectionforeground”更改为“黑色”。5. “列表”属性中“background”更改为“棕色”。6. 运行源程序。设计界面如下:(2)完成菜单界面菜单结构: m5=new jmenu(图书入库); menuitem14=new jmenuitem(图书入库); m1=new jmenu(图书证管理); menuitem1=new jmenuitem(读者注册); m2=new jmenu(图书流通管理); menuitem6=new jmenuitem(读者借书); menuitem7=new jmenuitem(还书);menuitem15=new jmenuitem(续借); m3=new jmenu(统计查询); menuitem9=new jmenuitem(图书查询); menuitem11=new jmenuitem(借阅统计); menuitem12=new jmenuitem(借阅查询); menuitem16=new jmenuitem(新书通报); menuitem17=new jmenuitem(图书催还); m4=new jmenu(帮助);在jframe窗体“设计”面板中:1. 添加“内部框架”,在“属性”中编辑“title”为“主窗体”。2. 添加“菜单栏”,添加菜单并编辑文本“图书入库 图书证管理 图书流通管理 统计查询 帮助”。3. 在每个菜单选项下附加“菜单项”并编辑文本。例如:在“图书入库”下附加“菜单项”,编辑文本为“图书入库”。4. 运行源程序。设计界面如下:相关主要程序如下:jinternalframe1.settitle(主窗体); jinternalframe1.setvisible(true); jmenu1.settext(图书入库); jmenuitem1.settext(图书入库); jmenu1.add(jmenuitem1); jmenubar1.add(jmenu1); jmenu2.settext(图书证管理); jmenuitem2.settext(读者注册); jmenu2.add(jmenuitem2); jmenubar1.add(jmenu2); jmenu3.settext(图书流通管理); jmenuitem3.settext(读者借书); jmenu3.add(jmenuitem3); jmenuitem4.settext(还书); jmenu3.add(jmenuitem4); jmenuitem5.settext(续借); jmenu3.add(jmenuitem5); jmenubar1.add(jmenu3); jmenu4.settext(统计查询); jmenuitem6.settext(图书查询); jmenu4.add(jmenuitem6); jmenuitem7.settext(借阅统计); jmenu4.add(jmenuitem7); jmenuitem8.settext(借阅查询); jmenu4.add(jmenuitem8); jmenuitem9.settext(新书通报); jmenu4.add(jmenuitem9); jmenuitem10.settext(图书催还); jmenu4.add(jmenuitem10); jmenubar1.add(jmenu4); jmenu5.settext(帮助); jmenubar1.add(jmenu5); (3)完成以下窗体制作在jframe窗体“设计”面板中:1. 添加“内部框架”,在“属性”中编辑“title”为“图书证办理”。2. 添加“面板”,在“属性”中“border”设置为“带标题的边框”,编辑标题为“图书证注册”,设置颜色为灰色。3. 添加“标签”7个,纵向排列,分别编辑文本为“姓名:”“性别:”“身份:”“单位:”“证件号码:”“注册日期:”“有效日期:”。4. 在“姓名:”“证件号:”“注册日期:”“有效日期:”后添加“文本字段”。5. 在“性别:”后添加“组合框”,在“属性”中“model”编辑文本“男,女”。6. 在“身份:”后添加“组合框”,在“属性”中“model”编辑文本“学生,老师,图书管理人员”。7. 在“单位:”后添加“组合框”,在“属性”中“model”编辑文本“计算机系,印包系,经管系,机仪系,自动化系”。8. 框架底部添加“按钮”4个,编辑文本分别为“添加”“删除”“撤销”“退出”。9. 美化界面。10. 运行源程序。设计界面如下(4)利用事件处理机制用户点击click me使背景变为黄色在jframe窗体“设计”面板中: 1. 添加“awt”中“面板”。2. 添加“awt”中“按钮”,在“属性”中“name”编辑文本“click me”。3. 双击“click me”在源程序处添加程序“panel1.setbackground(color.yellow);”。4. 设置jframe属性中“title”为“action event”。5. 运行源程序。设计界面如下:相关主要程序如下: private void button1actionperformed(java.awt.event.actionevent evt) panel1.setbackground(color.yellow); / todo add your handling code here: (5)运用swing控件完成下题在jframe窗体“设计”面板中:1. 添加“标签”5个,编辑文本分别为“员工编号:”“借用器具:”“借用日期:”“归还日期:”“借用原因:”。2. 添加“文本字段”放置于每个“标签”后。3. 添加“按钮”2个置于底部,编辑文本为“确定”“取消”。4. 设置jframe属性中“title”为“借用物品”。5. 美化界面。6. 运行源程序。设计界面如下:(6)利用合适的布局和swing控件完成下题按照界面使用相应控件与合适的布局完成下题,要求按生成随机数按纽产生三个随机整数0到100之间,按计算平均数按纽计算平均值,如图所示:1)初始界面2)按按生成随机数按纽和按计算平均数按纽后界面。在jframe窗体“设计”面板中:1. 添加“标签”4个,纵向排列,编辑文本为“随机数一”“随机数二”“随机数三”“三数平均”。2. 添加“文本字段”4个置于各“标签”后。其“属性”的“代码”中“变量修饰符”按照“文本字段”控件从上到下顺序依次改为“x1”“y1”“z1”“avg”。3. 添加“按钮”2个置于底部,编辑文本为“生成随机数”“计算平均数”。4. 美化界面。5. 在源程序“public class newjframe11 extends javax.swing.jframe ”后添加程序:int x =(int)(math.random()*100);int y = (int)(math.random()*100);int z = (int)(math.random()*100);6. 双击“生成随机数”,在源程序中添加代码:x1.settext(+x);y1.settext(+y);z1.settext(+z);7. 双击“计算平均数”,在源程序中添加代码:int x =(int)(math.random()*100);int y = (int)(math.random()*100);int z = (int)(math.random()*100);8. 运行源程序设计界面如下:相关主要程序如下:1. public class newjframe11 extends javax.swing.jframe int x =(int)(math.random()*100); int y = (int)(math.random()*100); int z = (int)(math.random()*100); /* creates new form newjframe11 */2.private void jbutton1actionperformed(java.awt.event.actionevent evt) x1.settext(+x);y1.settext(+y);z1.settext(+z);/ todo add your handling code here: 3.private void jbutton2actionperformed(java.awt.event.actionevent evt) avg.settext(+(x+y+z)/3); / todo add your handling code here:3.6问题分析(1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国家开放大学(电大)《历史学原理》期末考试备考试题及答案解析
- 2025年国家开放大学(电大)《环境科学》期末考试备考试题及答案解析
- 2025年国家开放大学《报道与写作》期末考试备考试题及答案解析
- 2025年国家开放大学《地球科学》期末考试备考试题及答案解析
- 2024-2025学年甘肃省天水市高一下学期期末阶段性检测英语试题(解析版)
- 2025年国家开放大学(电大)《国际金融管理》期末考试备考试题及答案解析
- 2025年国家开放大学《供应链管理学》期末考试备考试题及答案解析
- 2025年国家开放大学(电大)《商务沟通与谈判技巧》期末考试备考试题及答案解析
- 2025年国家开放大学《财务管理技巧》期末考试备考试题及答案解析
- 2025-2030光学防伪技术升级趋势与新型安全识别方案市场接受度分析报告
- 2024年10月全国自考《财务管理学》试题及答案
- 《大学生心理健康教育》全套教学课件
- 住宅小区防雷安全管理制度
- 台球助教管理培训
- 2024-2030年中国船舶设计行业需求态势展望及发展战略分析报告
- 乒乓球培训机构教学管理制度
- 《非洲民间故事》整本书阅读 课件 五年级上册语文(统编版) 五年级上册语文整本书阅读 导读课件+讲义+阅读检测(统编版)
- 河南省青桐鸣大联考2024-2025学年高一上学期10月月考政治试题含答案
- 初中英语单词全集(打印版)
- 2024年鑫源汽车有限公司招聘笔试冲刺题(带答案解析)
- 山东旅游宣传有内容课件
评论
0/150
提交评论