




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 图形用户界面程序设计,主要内容,图形用户界面开发包:awt 包及swing包 掌握创建gui 程序的基本方法 掌握使用布局管理器进行界面布局的基本方法 掌握 swing包中常用组件的基本用法 掌握java事件处理机制,java中开发图形用户界面的资源,界面元素:容器和组件 java.awt包 java.swing包 布局: 常用布局管理类:java.awt 新增布局管理类:java.swing 事件处理: 常用事件处理类或接口:java.awt.event 新增事件处理类或接口:java.swing.event,java gui组件,awt(abstract window toolkit):早期版本。 包为:java.awt 其优点是:简单、系统开销小;但是它开发出来的应用程序移植性差,而且不如windows自带的程序看起来精美。 swing: java1.2版本正式加入的新图形用户版本。 包为:javax.swing 优点是:不包含任何与平台有关的本地代码,基于swing的应用程序具有很好的可移植性;具有比awt更为丰富的组件;组件的形式也可以多样化;使用mvc体系结构进行设计;,awt组件和swing组件的关系,几乎所有的awt组件都有对应的swing组件,swing组件名前多一个字母“j”。 swing对awt组件进行了修改,且增加了新的组件。 本课程我们使用swing组件开发图形用户界面。,使用swing开发gui所需的资源,开发图形用户界面程序通常需导入: import javax.swing.*; import java.awt.*; import java.awt.event.*;,gui程序框架,import javax.swing.*; /引入gui包 public class myfirstgui extends jframe public myfirstgui() super(“我的第一个窗口程序 “); /调用父类jframe的构造器方法 public static void main(string args) myfirstgui w1=new myfirstgui(); w1.setsize(300,150); /设置窗口大小 w1.setvisible(true); /显示窗口 ,认识java gui程序,调试运行例题6-1,jframe类支持图形用户界面的设计与实现,通常我们编写的gui应用程序都要继承jframe类. jframe类位于javax.swing包. java.swing包是java平台上jfc(java foundation classws)的一部分,它提供开发gui所需要的所有组件。,向jframe中添加组件步骤,1.创建组件对象 如:jlabel jl1=new jlabel(“欢迎光临“); 2.获得添加的目标容器 container w1container=w1.getcontentpane(); 3.将组件添加到容器中 w1container.add(jl1);,进一步认识java gui程序,调试运行例题6-2,jlabel,标签组件,用来在窗口中显示信息. getcontentpane()是jfram的方法,用来获取当前对象的窗口容器(container).所有在窗口中显示的组件都要加入到这个容器中.通常情况下,用add方法将组件加入. container类位于java.awt包. 抽象窗口工具包awt (abstract window toolkit) 是 api为java 程序提供的建立图形用户界面gui 工具集,awt可用于java的applet和applications中。,问题思考,如果在一个窗口里显示多个标签,那么这些标签应该如何排列?,java的布局管理器,java的布局管理器提供了几种不同的布局管理方式,用来控制组件在容器中的显示方式和显示位置. 所有的布局管理方式都是以类的形式实现的,这些类位于java.awt包中. 常用的布局管理方式有下面几种: 顺序布局:flowlayout 边界布局:borderlayout 网格布局:gridlayout 手工布局:,设置布局管理器,每个容器拥有自己默认的布局管理器。contentpane的默认布局是borderlayout。 如果不希望使用默认布局,则可使用所有容器的父类container的setlayout()方法改变。例如:jpanel pane=new jpanel(); pane.setlayout(new borderlayout());,组件布局方法,顺序布局(flowlayout):将组件按从左至右,从上到下的顺序逐个放置。 边界布局(borderlayout),把容器分为5个区:北区、南区、东区、西区、中区。组件可以指定自己放在那个区,因为只有5个区,所以最多容纳5个组件。 网格布局(gridlayout),把容器区域分成若干个网格,每个网格放置一个组件,适合数量众多的组件。在创建网格布局时,可以给出网格的行数和列数。,顺序布局管理,调试运行例题6-3,定义顺序布局管理对象 flowlayout mylayout=new flowlayout(); 设置容器的布局管理方式为顺序布局方式 wincontainer.setlayout(mylayout);,顺序布局(flowlayout)是把组件一个接一个地从左到右顺序排列,一行排满后就转到下一行继续排列,直到把所有组件都排列完毕为止。 在顺序布局方式中,组件通过容器的add(组件)方法来实现上述排列。,边界布局,调试运行例题6-4,定义边界布局管理器对象 borderlayout mylayout=new borderlayout(); 设置容器的布局管理方式为边界布局方式 wincontainer.setlayout(mylayout); 将标签组件jl1放置在窗口东区 wincontainer.add(“east“,jl1) 或:wincontainer.add(borderlayout.east,jl1);,边界布局(borderlayout)是把容器分为5个区:北区(north)、南区(south)、东区(east)、西区(west)和中区(center)。这几个区的分布规律是“上北下南,左东右西中”。组件可以通过容器的add(区域,组件)的方法将其指定显示位置。由于只有5个区域,因此,边界布局最多只能放置5个组件。,网格布局,调试运行例题6-5,定义网格布局管理器对象 gridlayout mylayout=new gridlayout(3,2); 设置容器的布局管理方式为网格布局方式 wincontainer.setlayout(mylayout);,网格布局(gridlayout)将容器划分为m行,n列个网格,每个网格放置一个组件.组件通过容器的add(组件)方法将组件从左到右放置在对应的网格中。,手工布局,调试运行例题6-6,jl1.setbounds(x,y,width,height); 设置标签组件jl1左上角坐标在窗口中位于 (x,y)处,组件jl1宽为width像素,高为heiht像素. 窗口的原点位于窗口的左上角. x值越大,就越靠 近窗口的右边,y值越大,就越靠近窗口的下面. 设置容器的布局管理方式为null布局方式 wincontainer.setlayout(null);,手工布局允许程序员对界面进行个性化的设计,即由程序员来安排组件在容器中的具体位置和大小.组件通过容器的add(组件)方法加入。,手工布局,设置布局为手工布局 如:w1container.setlayout(null); 设置组件显示的位置和大小 如1:jl1.setbounds(10,20,100,20); 如2:jl2.setbounds(20,40,100,20);,小结,java gui界面设计步骤: 1.引入组件所在的包(如javax.swing.和java.awt) 2.定义图形用户界面类,该类继承自jframe 3.将图形用户界面中需要的组件定义成成员变量 4.添加构造器方法,在该构造器方法中,实现界面设计 (1)调用父类jframe构造器方法 (2)将需要在当前窗口放置的组件进行初始化 (3)通过this.getcontentpane()获得当前窗口容器对象 (4)定义并设置当前容器的布局管理方式 (5)将定义好的组件添加到当前窗口 (6)将窗口设置为合适的大小 (7)显示窗口 5.生成窗口对象(通常在main方法中生成),你就可以看到相应的窗口了,练习1,编程实现如图所示的窗口,使用顺序布局方式,练习2,编程实现如图所示的窗口,使用边界布局方式,练习3,编程实现如图所示的窗口,使用网格布局方式,事件处理,import javax.swing.*; import java.awt.*; public class myfirstevent extends jframe public myfirstevent() super(“事件处理机制“); public static void main(string args) myfirstevent w1=new myfirstevent(); container w1container=w1.getcontentpane(); w1container.setlayout(null); jlabel jl1=new jlabel(“欢迎访问,请点击下面的按钮“); jl1.setbounds(50,20,200,30); w1container.add(jl1); jbutton jb1=new jbutton(“被按下偶数次“); jb1.setbounds(60,60,150,30); w1container.add(jb1); w1.setsize(300,150); w1.setvisible(true); ,事件处理中的4要素,事件源:产生事件的组件 事件 事件监听器:负责监听事件的程序 事件服务程序 :针对具体事件的处理代码,事件处理机制,添加事件处理步骤:,(1)为组件注册事件监听器: 如:addactionlistener(this) (2)编写事件监听器类,要求实现相关的事件监听器接口。并在事件监听器类中实现特定方法。 (3)并在事件监听器类中实现特定方法。 注:常用事件处理接口包含在java.awt.event包中,因此,程序必须引入该包。,事件服务类的建立,事件服务类必须实心相应的事件监听器接口或继承适配器类。,常用组件的使用,font和color 标签和按钮 文本输入框和密码输入框 单选按钮和复选框 下拉菜单 菜单 对话框 文件框,font、color、标签和按钮应用实例,实例:当我们点击“颜色变化”按钮时,“欢迎光临”的颜色在红与兰色之间变换,当点击“推出”按钮时,退出应用程序。 程序:mybuttonexample.java,文本输入框和密码输入框应用实例,实例:当我们输入正确的用户名和密码(“java”和“1234”)时,系统提示正确信息,否则提示错误信息。 程序:myfieldexample.java,单选按钮和复选框应用实例,实例:当我们在文本框中输入数值,并按回车键时,系统能根据当前所选择的运算符进行运算,并将结果以选择的状态进行显示。 程序:myradiobuttonevent.java,下拉菜单应用实例,实例:制作1个简单的省会查询器。当我们选择不同的省份时,能将该省份的省会给显示出来。 程序:myitemevent.java,菜单应用实例,实例:完成一个“文件编辑”的基本界面。当我们选择不同的菜单时,系统能显示你所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025兴安盟科右前旗人民医院招聘43名合同制工作人员考试模拟试题及答案解析
- 基于2025年工业互联网平台联邦学习的隐私保护技术在智慧环保中的应用研究报告
- 智能港口物流信息化系统建设与2025年港口竞争力提升研究报告
- 2025四川宜宾市珙县事业单位第二次选调5人备考考试题库附答案解析
- 在线职业教育市场2025年预测:课程创新与教学模式创新研究报告
- 三年级下英语单元测试题-Unit2AnimalsattheZooB卷冀教版含答案
- 2025年乡村文化旅游与乡村旅游目的地品牌塑造策略报告
- 2025年创业孵化基地建设资金申请项目创业孵化基地项目投资风险控制报告
- 2025年学前教育机构师资队伍教师培训与教学效果评价体系完善报告
- 奢侈品零售行业2025年市场拓展与消费者需求匹配分析报告
- ×××学校“学校学生资助管理机构成立文件”
- 动词过去式和过去分词的变化规则练习及答案
- XX资产评估有限公司内部管理制度
- 第四章 土壤污染调查与风险评价
- GB/T 9877-2008液压传动旋转轴唇形密封圈设计规范
- GB/T 12670-2008聚丙烯(PP)树脂
- 共享服务中心(HRSSC)课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
- 高中心理健康课程《人际关系-寝室篇》课件
- 数字色彩课件
- 一年级上册科学课件-第一单元 走近科学 复习课件-鄂教版(共23张PPT)
评论
0/150
提交评论