



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java实验报告实验六java图形用户界面 信 息 工 程 学 院 1 java 程序设计 实习报告 a java 图形用户界面 实验六 java 图形用户界面 1实验目的 (1)掌握图形用户界面基本组件。 (2)了解如何使用布局管理器对组件进行管理。 (3)掌握 java 事件处理机制。 2实验内容 题 实验题 1 编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10 个数字按钮(0-9),4 个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。 运行结果: 实验报告的内容与格式按任课教师的要求书写。 带 格式 的: 首页采用不同的页眉 精选文库 2
2、 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米加法: 主要代码: private void initcomponents() jbutton1 = new javax.swing.jbutton(); jbutton2 = new javax.swing.jbutton(); jbutton3 = new javax.swing.jbutton(); jbutton4 = new javax.swing.jbutton(); jbutton5 = new javax.swing.jbutton(); jbutton6 = new javax.swing.jbutton(); jbu
3、tton7 = new javax.swing.jbutton(); jbutton8 = new javax.swing.jbutton(); jbutton9 = new javax.swing.jbutton(); jbutton10 = new javax.swing.jbutton(); jbutton11 = new javax.swing.jbutton(); jbutton12 = new javax.swing.jbutton(); jbutton13 = new javax.swing.jbutton(); jbutton14 = new javax.swing.jbutt
4、on(); jbutton15 = new javax.swing.jbutton(); jtextfield1 = new javax.swing.jtextfield(); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 setstub(null); jbutton1.settext(3); jbutton1.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton1actionpe
5、rformed(evt); ); jbutton2.settext(1); jbutton2.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton2actionperformed(evt); ); jbutton3.settext(5); jbutton3.addactionlistener(new java.awt.event.actionlistener() public void actionperf
6、ormed(java.awt.event.actionevent evt) jbutton3actionperformed(evt); ); jbutton4.settext(2); jbutton4.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton4actionperformed(evt); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 ); jbutton5.settext
7、(6); jbutton5.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton5actionperformed(evt); ); jbutton6.settext(8); jbutton6.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent
8、evt) jbutton6actionperformed(evt); ); jbutton7.settext(4); jbutton7.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton7actionperformed(evt); ); jbutton8.settext(7); jbutton8.addactionlistener(new java.awt.event.actionlistener() p
9、ublic void actionperformed(java.awt.event.actionevent evt) jbutton8actionperformed(evt); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 ); jbutton9.settext(0); jbutton9.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton9actionperformed(evt)
10、; ); jbutton10.settext(9); jbutton10.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton10actionperformed(evt); ); jbutton11.settext(u00f7); jbutton11.addactionlistener(new java.awt.event.actionlistener() public void actionperform
11、ed(java.awt.event.actionevent evt) jbutton11actionperformed(evt); ); jbutton12.settext(u00d7); jbutton12.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton12actionperformed(evt); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 ); jbutton13.s
12、ettext(-); jbutton13.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton13actionperformed(evt); ); jbutton14.settext(+); jbutton14.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.ac
13、tionevent evt) jbutton14actionperformed(evt); ); jbutton15.settext(=); jbutton15.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jbutton15actionperformed(evt); ); 实验题 2 编写一个程序,有一个窗口,该窗口为 borderlayout 布局。窗口的中心添加一个 panel 容器:pcenter,pcen
14、ter 的布局是 7 行 7 列的 gridlayout 布局,pcenter的中放置 49 个标签,用来显示日历。窗口北面添加一个 panel 容器 pnorth,其布局是flowlayout 布局,pnorth 放置两个按钮:nextmonth 和 previousmonth 按钮,单击nextmonth,可以显示当前月的下一个月的日历;单击 previousmonth 按钮,可以显示当 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米前月的上一个月的日历。窗口的南面添加一个 panel 容器 psouth,其布局是 flowlayout布局,psouth 中放置一个
15、标签用来显示一些信息。运行结果如图所示。 图 3.8 运行结果图 基本要求 编写完整程序。 运行结果: 主要代码: private jlabel buttonday = new jlabel42; private jbutton buttonweek = new jbutton7; private jlabel labelmonth = new jlabel(); private jbutton buttonlastmonth = new jbutton(); private jbutton buttonnextmonth = new jbutton(); 精选文库 2 带 格式 的: 右带
16、格式 的: 右侧: 0.63 厘米private jpanel pcenter=new jpanel(); private jpanel pnorth=new jpanel(); private jpanel psouth=new jpanel(); private jlabel time=new jlabel(); public calender() super(calender); setbounds(250, 200, 600, 500); setdefaultcloseoperation(jframe.exit_on_close); buttonlastmonth.settext(上月
17、); buttonlastmonth.addactionlistener(this); pnorth.add(buttonlastmonth); buttonnextmonth.settext(下月); buttonnextmonth.addactionlistener(this); pnorth.add(buttonnextmonth); getcontentpane().add(pnorth,borderlayout.north); getcontentpane().add(pcenter,borderlayout.center); pcenter.setlayout(new gridla
18、yout(7,7); for (int i = 0; i 7; i+) buttonweeki = new jbutton(); buttonweeki.settext(stringweekcni); pcenter.add(buttonweeki); for (int i = 0; i 42; i+) buttondayi = new jlabel(); buttondayi.settext( ); pcenter.add(buttondayi); 实验题 3 3 实现如图 3.9 所示的布局方式 功能:前两个文本框输入整型数据。第三个文本框存放前两个文本框数据之和。 要求如下: 精选文库
19、2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米第一个文本框的数据是100,200,如果超出该范围弹出对话框提示用户。弹出提示对话框的时刻是光标离开第一个文本框时。 图 3.9 求和 运行结果: 检验输入数据范围: 主要代码: class mousehander extends mouseadapter public mousehander(jtextfield c) current=c; public void mousepressed(mouseevent event) if(current=result) 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米
20、 double firstnumber=double.parsedouble(first.gettext(); double secondnumber=double.parsedouble(second.gettext(); double result=firstnumber+secondnumber; result.settext(+result); else current.settext(); private jtextfield current; class mousemotionhander extends mousemotionadapter public void mousemo
21、ved(mouseevent event) double number=double.parsedouble(first.gettext(); if(number100|number200) int type=joptionpane.error_message; joptionpane.showmessagedialog(null,new string(输入数字必须在100200之间),提示, 2); 实验题 实验题 4 编写一个显示图像文件的 application 应用程序,在该程序 jframe 窗体中添加 jpanel 面板和一个 jtoolbar 工具栏,在工具栏上添加一个 jbut
22、ton"打开'按扭,单击"打开'按纽,弹出 jfilechooser 文件打开选择对话框,选择图像文件后将其显示在 jpnel 面板中。 运行结果: 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 主要代码: public class newjframe extends javax.swing.jframe private jpanel jpanel1; private jpanel jpanel2; private jbutton jbutton2; private jbutton jbutton1; private string
23、filepath = ; 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 /* * auto-generated main method to display this jframe */ public static void main(string args) swingutilities.invokelater(new runnable() public void run() newjframe inst = new newjframe(); inst.setlocationrelativeto(null); inst.setvisible(true); ); pu
24、blic newjframe() super(); initgui(); private void initgui() try setdefaultcloseoperation(windowconstants.dispose_on_close); jpanel1 = new jpanel(true); flowlayout jpanel1layout = new flowlayout(); getcontentpane().add(jpanel1, borderlayout.north); jpanel1.setpreferredsize(new java.awt.dimension(384,
25、 43); jpanel1.setlayout(jpanel1layout); jbutton2 = new jbutton(); jpanel1.add(jbutton2); jbutton2.settext(open); jbutton2.setbounds(104, 12, 62, 22); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 jbutton2.setpreferredsize(new java.awt.dimension(76, 22); jbutton2.addactionlistener(new actionlistener() public v
26、oid actionperformed(actionevent evt) jbutton2actionperformed(evt); ); jbutton1 = new jbutton(); jpanel1.add(jbutton1); jbutton1.settext(close); jbutton1.setbounds(204, 12, 62, 22); jbutton1.setpreferredsize(new java.awt.dimension(72, 22); jbutton1.addmouselistener(new mouseadapter() public void mous
27、epressed(mouseevent evt) system.exit(0); /todo add your code for jbutton1.mousepressed ); jpanel2 = new jpanel(); getcontentpane().add(jpanel2, borderlayout.center); pack(); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 setsize(400, 300); catch (exception e) /add your error handling code here e.printstacktrac
28、e(); private void jbutton2actionperformed(actionevent evt) string action = evt.getactioncommand(); jfilechooser filechooser = new jfilechooser(); int index = filechooser.showopendialog(getcontentpane(); if(index = jfilechooser.approve_option) file selectedfile = filechooser.getselectedfile(); /取得选中的
29、文件 filepath = selectedfile.getpath(); filepath = filepath.replace("","/"); imageicon icon = new imageicon(filepath); jlabel label = new jlabel(icon,jlabel.center); jlabel p=new jlabel(图片路径: + filepath); jpanel2.add(p,borderlayout.south); jpanel2.add(label); jpanel2.update(null);
30、实验题 实验题 5 5 使用 swt 技术完成图 3.10 所示图形界面的制作。要求"查询结果'用group 组件。 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 图 3.10 数据查询界面 运行结果; 主要代码: public class search extends org.eclipse.swt.widgets.composite private composite composite1; private composite composite2; private group group1; private text text4; privat
31、e label label4; private text text3; private label label3; private text text2; private label label2; private button button2; 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 private button button1; private text text1; private label label1; /register as a resource user - swtresourcemanager will /handle the obtaini
32、ng and disposing of resources swtresourcemanager.registerresourceuser(this); public search(composite parent, int style) super(parent, style); initgui(); /* * initializes the gui. */ private void initgui() try this.setsize(new org.eclipse.swt.graphics.point(400,300); this.setbackground(swtresourceman
33、ager.getcolor(192, 192, 192); formlayout thislayout = new formlayout(); this.setlayout(thislayout); composite1 = new composite(this, swt.none); formlayout composite1layout = new formlayout(); formdata composite1ldata = new formdata(); composite1ldata.left = new formattachment(0, 1000, 0); composite1
34、ldata.top = new formattachment(0, 1000, 0); composite1ldata.width = 400; 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 composite1ldata.height = 300; composite1.setlayoutdata(composite1ldata); composite1.setlayout(composite1layout); group1 = new group(composite1, swt.none); gridlayout group1layout = new gridla
35、yout(); group1layout.marginbottom = 30; group1layout.numcolumns = 2; group1layout.verticalspacing = 15; group1layout.margintop = 10; group1.setlayout(group1layout); formdata group1ldata = new formdata(); group1ldata.left = new formattachment(0, 1000, 38); group1ldata.top = new formattachment(0, 1000
36、, 106); group1ldata.width = 318; group1ldata.height = 145; group1.setlayoutdata(group1ldata); group1.settext(u67e5u8be2u7ed3u679c); group1.setfont(swtresourcemanager.getfont(微软雅黑, 11, 0, false, false); label2 = new label(group1, swt.none); griddata label2ldata = new griddata(); label2ldata.widthhint
37、 = 70; label2ldata.heighthint = 25; label2.setlayoutdata(label2ldata); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 label2.settext(u5b66u53f7uff1a); label2.setfont(swtresourcemanager.getfont(微软雅黑, 11, 0, false, false); griddata text2ldata = new griddata(); text2ldata.widthhint = 181; text2ldata.heighthint =
38、27; text2 = new text(group1, swt.none); text2.setlayoutdata(text2ldata); label3 = new label(group1, swt.none); griddata label3ldata = new griddata(); label3ldata.widthhint = 63; label3ldata.heighthint = 23; label3.setlayoutdata(label3ldata); label3.settext(u59d3u540duff1a); label3.setfont(swtresourc
39、emanager.getfont(微软雅黑, 11, 0, false, false); griddata text3ldata = new griddata(); text3ldata.widthhint = 181; text3ldata.heighthint = 27; 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 text3 = new text(group1, swt.none); text3.setlayoutdata(text3ldata); label4 = new label(group1, swt.none); griddata label4lda
40、ta = new griddata(); label4ldata.widthhint = 57; label4ldata.heighthint = 28; label4.setlayoutdata(label4ldata); label4.settext(u5e74u9f84uff1a); label4.setfont(swtresourcemanager.getfont(微软雅黑, 11, 0, false, false); griddata text4ldata = new griddata(); text4ldata.widthhint = 182; text4ldata.heighth
41、int = 31; text4 = new text(group1, swt.none); text4.setlayoutdata(text4ldata); composite2 = new composite(composite1, swt.none); gridlayout composite2layout = new gridlayout(); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 composite2layout.numcolumns = 2; composite2layout.marginleft = 40; composite2layout.hor
42、izontalspacing = 10; composite2layout.verticalspacing = 15; formdata composite2ldata = new formdata(); composite2ldata.left = new formattachment(0, 1000, 12); composite2ldata.top = new formattachment(0, 1000, 12); composite2ldata.width = 376; composite2ldata.height = 88; composite2.setlayoutdata(com
43、posite2ldata); composite2.setlayout(composite2layout); label1 = new label(composite2, swt.none); griddata label1ldata = new griddata(); label1ldata.widthhint = 96; label1ldata.heighthint = 22; label1.setlayoutdata(label1ldata); label1.settext(u8bf7u8f93u5165u5b66u53f7uff1a); label1.setfont(swtresour
44、cemanager.getfont(微软雅黑, 12, 0, false, false); griddata text1ldata = new griddata(); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 text1ldata.widthhint = 182; text1ldata.heighthint = 28; text1 = new text(composite2, swt.none); text1.setlayoutdata(text1ldata); button1 = new button(composite2, swt.push | swt.cen
45、ter); griddata button1ldata = new griddata(); button1ldata.widthhint = 70; button1ldata.heighthint = 27; button1.setlayoutdata(button1ldata); button1.settext(u786eu5b9a); button2 = new button(composite2, swt.push | swt.center); griddata button2ldata = new griddata(); button2ldata.widthhint = 78; but
46、ton2ldata.heighthint = 27; button2.setlayoutdata(button2ldata); button2.settext(u91cdu7f6e); this.layout(); 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 catch (exception e) e.printstacktrace(); /* * auto-generated main method to display this * org.eclipse.swt.widgets.composite inside a new shell. */ public s
47、tatic void main(string args) display display = display.getdefault(); shell shell = new shell(display); search inst = new search(shell, swt.null); point size = inst.getsize(); shell.setlayout(new filllayout(); shell.layout(); if(size.x = 0 size.y = 0) inst.pack(); shell.pack(); else rectangle shellbo
48、unds = putetrim(0, 0, size.x, size.y); shell.setsize(shellbounds.width, shellbounds.height); shell.open(); while (!shell.isdisposed() if (!display.readanddispatch() display.sleep(); 实验题 6 6 使用 swt 技术完成图 3.11 所示学籍管理主界面的设计与制作。 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 图 3.11 学籍管理主界面 运行结果: 精选文库 2 带 格式 的: 右带 格式 的: 右侧: 0.63 厘米 主要代码: public class example public static void main(string args) window win=new window(学籍管理系统,300,200,500,500); package package6; import java.awt.*; import javax.swing.*; import java.awt.event.inputevent; import java.awt.event.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2007年浙江高考语文试卷及答案试题试卷
- 福建事业单位考试人力资源试题及答案
- 七年级生物下册 第四单元 生物圈中的人 第五章 人体内废物的排出第二节 人粪尿的处理教学设计(新版)新人教版
- 吉林省通化市七年级地理上册 3.1多变的天气教学设计2 (新版)新人教版
- 九年级语文下册第四单元14山水画的意境教学设计新人教版
- 2024年农艺师职业发展中的资金使用试题及答案
- 服务器设备采购协议
- 四川省宜宾市南溪二中高一体育《篮球》教学设计
- 高校辅导员考试课程评估与优化技能试题及答案
- 活动策划服务采购协议
- 网课智慧树知道《人工智能引论(浙江大学)》章节测试答案
- 2024年南通市高考《数学》第四次模拟试卷(含答案)
- WD-PSO-LSTM模型在光伏出力预测中的应用
- 期中测试卷(试题)-2023-2024学年六年级下册数学苏教版
- 广东省深圳市2023-2024学年六年级下册(全册)期中模拟测试数学试卷(北师大版)
- 《黑人非洲音乐》
- 安全教育普法
- 分层过程审核培训-课后测试附有答案
- 急性肾损伤护理查房
- 江苏省南京市鼓楼区2022-2023学年五年级下学期期中语文试卷
- 第1课+古代亚非【中职专用】《世界历史》(高教版2023基础模块)
评论
0/150
提交评论