




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GUI编程第六章回顾运行时发生的错误称为异常。
Java使用
try和
catch块来处理异常。try块中的语句引发异常,而
catch块则处理异常。可以同时使用多个catch块来分别处理各种异常类型。关键字
throws用于列出一个方法可能引发的异常类型。Java中的垃圾收集就是将分配给对象但不再使用的内存回收或释放的过程。目标了解AWT包及其组件掌握如何创建GUI程序掌握AWT组件的基本用法掌握如何使用布局管理器构造复杂的布局一、抽象窗口工具包图形用户界面(GUI)可以通过键盘或鼠标来响应用户的操作。抽象窗口工具包(AWT)是一组Java类,此组Java类允许创建图形用户界面(GUI)。AWT提供用于创建生动而高效的GUI的各种组件。java.awt包中的类体系结构ComponentButtonCheckboxContainerChoiceCanvasTextComponentLabelPanelWindowAppletFrameDialogTextAreaTextField容器–框架框架是独立于Applet和浏览器的一个窗口。可以通过以下任一构造函数来创建:Frame():创建一个不含标题的标准窗口Frame(StringTitle):创建一个含有标题的窗口,这个标题是由参数title指定的。当一个Frame窗口被创建以后,需要调用setSize()方法来设置窗口的大小,并调用setVisible()来显示窗口。示例1FrameDemo容器-面板面板不是一个单独的窗口,它只是包含在窗口中的一个区域。面板是可以将许多组件组合起来的一种容器。最简单的创建面板的方式就是通过面板的构造函数Panel()来进行。必须将面板添加到窗体中。三、AWT组件组件指可以放置在用户界面上的任何东西,可以将组件设置为可见或重新调整其大小。AWT支持的组件:标签、文本域、文本区、按钮、复选框、选择框等。高级组件包括滚动条、滚动窗格和对话框。向窗口加入一个组件:首先生成所需组件的实例,然后调用add()方法,此方法是在Container类中定义的。不同组件标签文本域复选框单选按钮文本区按钮1、标签可以通过以下任一构造函数来创建:Label():新建一个空标签Label(String
labeltext):新建一个包含给定文本的标签Label(String
labeltext,intalignment):新建一个包含给定对齐方式的标签,对齐方式可以为Label.LEFT、Label.RIGHT
或Label.CENTER通常用来指明项目的用途标签不可以被用户编辑2、文本域可以通过以下任一构造函数来创建:TextField():新建一个文本域
TextField(intcolumns):新建一个包含给定列数的文本域
TextField(Strings):新建一个包含给定字符串的文本域
TextField(Strings,intcolumns):新建一个包含给定字符串和列数的文本域
一种用来输入文本的GUI组件只能接受一行输入标签和文本域使用示例importjava.awt.*;
classTextLabelDemoextendsFrame{LabellblName=newLabel(“名称:”);TextFieldtxtName=newTextField(20);
publicTextLabelDemo(Stringtitle){ super(title); setLayout(newFlowLayout());
add(lblName); add(txtName);}publicstaticvoidmain(Stringargs[]){
TextLabelDemot=newTextLabelDemo("正在测试组件!");
t.setSize(300,200); t.show();} }
新建一个标签新建一个文本域添加到窗口示例3TextLabelDemo.java3、文本区可以通过以下构造函数来创建:TextArea():新建一个TextAreaTextArea(introws,intcols):新建一个包含给定行数和列数的TextAreaTextArea(Stringtext,introws,intcols):新建一个包含给定字符串、行数和列数的TextArea要接受输入多行文本时使用可以包括滚动条...TextAreatxtComment=newTextArea();
add(txtComment);
...示例4TextComments.java5、复选框可以使用以下任一构造函数来创建复选框:
-Checkbox():创建一个空的复选框,且未被选中-Checkbox(Stringtext):创建一个用给定字符串作为标签的复选框,且未被选中-Checkbox(String
text,Booleanon):创建一个标签由参数text指定的复选框,允许通过参数on设定复选框的初始状态。用于多选项的用户输入,用户可以通过单击复选框来选定或取消选定某选项。示例6Qualification.java6、单选按钮可以通过复选框组生成一系列互斥的复选框,实现单选按钮功能。在一组单选按钮中只能选择一个按钮。首先创建一个
CheckboxGroup
对象。
CheckboxGroupcg=newCheckboxGroup();然后再创建各单选按钮。
Checkboxmale=Checkbox("男",cg,true);Checkboxfemale=Checkbox("女",cg,false);7、选择框用
Choice
类可以创建一个选择框
Choicemoviestars=newChoice();
通过addItem()方法可以添加项目moviestars.addItem("安东尼奥.班德拉斯");moviestars.addItem("莱昂纳多.迪卡普尼奥");moviestars.addItem("桑德.布洛克");moviestars.addItem("休.葛兰特");moviestars.addItem("朱莉亚.罗萡茨");
用来向用户显示一个选择列表示例7Stars.java四、布局管理器用户界面上的组件可以按不同方式排列。Java使用布局管理器来管理这些排列方式。每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,就要用到布局管理器。AWT提供一组用来进行布局管理的类,称为布局管理器或布局。所有布局都实现
LayoutManager接口。布局类型Java中的布局类型包括以下几种:FlowLayout(流式布局)BorderLayout(边界布局)GridLayout(网格布局)GridBagLayout(网格包布局)CardLayout(卡片布局)布局类型的选用每个布局管理器都有自己特定的用途。要按行和列显示几个同样大小的组件,GridLayout
会比较合要在尽可能大的空间里显示一个组件,就要选择BorderLayout
或GridBagLayout
如何设置布局每个容器(Container对象)都有一个与它相关的缺省的布局管理器。-Applet的缺省布局是FlowLayout
在没有设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。可以通过setLayout()方法为容器设置新的布局。
1、FlowLayoutFlowLayout的构造函数有:FlowLayout():生成一个默认的流式布局FlowLayout(intalignment):可以设定每一行组件的对齐方式FlowLayout(int
alignment,int
horz,int
vert):可以设定组件间的水平和垂直距离Applet和面板的缺省布局组件从左上角开始按从左到右、从上到下的方式排列FlowLayoutmylayout=newFlowLayout();FlowLayoutexLayout=newFlowLayout(FlowLayout.RIGHT);setLayout(exlayout);//为容器设置新布局
BorderLayout2-2
BorderLayout
类定义了几个常量值以指定相应区域:
BorderLayout.NORTH–对应容器的顶部BorderLayout.EAST–对应容器的右部BorderLayout.SOUTH–对应容器的底部BorderLayout.WEST–对应容器的左部BorderLayout.CENTER–对应容器的中部加入组件方法:
voidadd(Component
Obj,intregion);...setLayout(newBorderLayout());
ButtonbtnEast=newButton("东");
ButtonbtnWest=newButton("西");
ButtonbtnNorth=newButton("北");
ButtonbtnSouth=newButton("南");
ButtonbtnCenter=newButton("中");
add(btnEast,BorderLayout.EAST);add(btnWest,BorderLayout.WEST);add(btnNorth,BorderLayout.NORTH);add(btnSouth,BorderLayout.SOUTH);add(btnCenter,BorderLayout.CENTER);...示例8BorderApp.java3、GridLayoutGridLayout的构造函数如下所示:
-
GridLayout():生成一个单列的网格布局-GridLayout(int
row,int
col):生成一个设定行数和列数的网格布局-GridLayout(int
row,int
col,int
horz,int
vert):可以设置组件之间的水平和垂直间隔
用于将容器区域划分为一个矩形网格组件按行和列排列...
Buttonbtn[];//声明按钮数组
Stringstr[]={"1","2","3","4","5","6","7","8","9"};setLayout(newGridLayout(3,3));btn=newButton[str.length];//创建按钮数组for(inti=0;i<str.length;i++){
btn[i]=newButton(str[i]);add(btn[i]);}代码示例:GridLayout.javaGridBagConstraints类2-1成员变量列表:gridx,gridy:指定组件放置于哪个单元中gridwidth,gridheight:指定组件将占用多少行和多少列weightx,weighty:指定在一个GridBagLayout
中应如何分配空间,这些变量的缺省值为0ipadx,ipady:指定组件的最小高度和宽度示例9Mygridbag.java成员变量列表:fill:指定在单元大于组件的情况下,组件如何填充此单元,共有4可选值。缺省值为:GridBagConstraints.NONEanchor:指定将组件放置在单元中的位置,共有9个可选值。缺省值为:GridBagConstraints.CENTER
GridBagConstraints类2-2示例9Mygridbag.java5、CardLayout可存储几个不同的布局。每个布局就像是一个卡片组中的一张卡片。在一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塔里木大学《数据可视化原理及应用》2023-2024学年第二学期期末试卷
- 重庆工商大学派斯学院《体育教学技能训练》2023-2024学年第二学期期末试卷
- 南京机电职业技术学院《细胞生物学A》2023-2024学年第二学期期末试卷
- 上海城建职业学院《学前儿童家庭教育与社区教育》2023-2024学年第二学期期末试卷
- 四川幼儿师范高等专科学校《种子经营管理学》2023-2024学年第二学期期末试卷
- 陕西青年职业学院《数据结构与算法分析》2023-2024学年第二学期期末试卷
- 湖北师范大学文理学院《电脑辅助设计(1)》2023-2024学年第二学期期末试卷
- 陕西国防工业职业技术学院《第二外语(韩语)1》2023-2024学年第二学期期末试卷
- 贵州民用航空职业学院《混凝土工学概论》2023-2024学年第二学期期末试卷
- 大庆师范学院《建筑设计理论(三)》2023-2024学年第二学期期末试卷
- 精雕JDPaint快捷键大全
- 灯泡贯流式机组基本知识培训ppt课件
- 小学数学四年级下册培优补差记录
- 人教版三年级下册体育与健康教案(全册教学设计)
- DB61∕T 5006-2021 人民防空工程标识标准
- 土壤学习题与答案
- 产品结构设计(课堂PPT)
- 第九课_静止的生命
- 尖尖的东西我不碰(课堂PPT)
- 工程勘察和设计承揽业务的范围
- 数字化影像与PACS教学大纲
评论
0/150
提交评论