可以存放组件的区域.ppt_第1页
可以存放组件的区域.ppt_第2页
可以存放组件的区域.ppt_第3页
可以存放组件的区域.ppt_第4页
可以存放组件的区域.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

容器,可以存放组件的区域,可在容器上进行绘制和着色java.awt包中的Container类可直接或间接派生出两个常用容器:框架(Frame类)和面板(Panel类)。框架是一个带有边框的独立的窗口。面板是包含在窗口中的一个不带边框的区域。,容器框架,框架是独立于Applet和浏览器的一个窗口。可以通过以下任一构造函数来创建:Frame():创建一个不含标题的标准窗口Frame(StringTitle):创建一个含有标题的窗口,这个标题是由参数title指定的。当一个Frame窗口被创建以后,需要调用setSize()方法来设置窗口的大小,并调用setVisible()来显示窗口。,容器-面板,面板不是一个单独的窗口,它只是包含在窗口中的一个区域。面板是可以将许多组件组合起来的一种容器。最简单的创建面板的方式就是通过面板的构造函数Panel()来进行。必须将面板添加到窗体中。,使用容器示例,importjava.awt.*;classPanelTestextendsPanelpublicstaticvoidmain(Stringargs)PanelTestp=newPanelTest();Framef=newFrame(正在测试面板!);f.add(p);f.setSize(300,200);f.setVisible(true);,使用GUI组件必须导入该包,将面板添加到框架窗体中,AWT组件,组件指可以放置在用户界面上的任何东西,可以将组件设置为可见或重新调整其大小。AWT支持的组件:标签、文本域、文本区、按钮、复选框、选择框等。高级组件包括滚动条、滚动窗格和对话框。向窗口加入一个组件:首先生成所需组件的实例,然后调用add()方法,此方法是在Container类中定义的。,不同组件,标签,文本域,文本区,按钮,标签,可以通过以下任一构造函数来创建:Label():新建一个空标签Label(Stringlabeltext):新建一个包含给定文本的标签Label(Stringlabeltext,intalignment):新建一个包含给定对齐方式的标签,对齐方式可以为Label.LEFT、Label.RIGHT或Label.CENTER,通常用来指明项目的用途标签不可以被用户编辑,文本域,可以通过以下任一构造函数来创建:TextField():新建一个文本域TextField(intcolumns):新建一个包含给定列数的文本域TextField(Strings):新建一个包含给定字符串的文本域TextField(Strings,intcolumns):新建一个包含给定字符串和列数的文本域,一种用来输入文本的GUI组件只能接受一行输入,标签和文本域使用示例,importjava.awt.*;classTextLabelDemoextendsFrameLabellblName=newLabel(“名称:”);TextFieldtxtName=newTextField(20);publicTextLabelDemo(Stringtitle)super(title);setLayout(newFlowLayout();add(lblName);add(txtName);publicstaticvoidmain(Stringargs)TextLabelDemot=newTextLabelDemo(正在测试组件!);t.setSize(300,200);t.show();,新建一个标签,新建一个文本域,添加到窗口,文本区,可以通过以下构造函数来创建:TextArea():新建一个TextAreaTextArea(introws,intcols):新建一个包含给定行数和列数的TextAreaTextArea(Stringtext,introws,intcols):新建一个包含给定字符串、行数和列数的TextArea,要接受输入多行文本时使用可以包括滚动条,.TextAreatxtComment=newTextArea();add(txtComment);.,按钮,可以使用以下任一构造函数来创建按钮:Button():新建一个空的按钮Button(Stringtext):新建一个包含给定字符串的按钮,按钮是任何GUI都不可或缺的组件用来捕捉用户操作的最为简便的方式,.ButtonbtnOk=newButton(确定!);ButtonbtnCancel=newButton(取消!);add(btnOk);add(btnCancel);.,复选框,可以使用以下任一构造函数来创建复选框:-Checkbox():创建一个空的复选框,且未被选中-Checkbox(Stringtext):创建一个用给定字符串作为标签的复选框,且未被选中-Checkbox(Stringtext,Booleanon):创建一个标签由参数text指定的复选框,允许通过参数on设定复选框的初始状态。,用于多选项的用户输入,用户可以通过单击复选框来选定或取消选定某选项。,单选按钮,可以通过复选框组生成一系列互斥的复选框,实现单选按钮功能。在一组单选按钮中只能选择一个按钮。首先创建一个CheckboxGroup对象。CheckboxGroupcg=newCheckboxGroup();然后再创建各单选按钮。Checkboxmale=Checkbox(男,cg,true);Checkboxfemale=Checkbox(女,cg,false);,复选框和单选按钮使用示例,importjava.awt.*;classQualificationextendsFrameCheckboxt1=newCheckbox(VisualBasic);Checkboxt2=newCheckbox(VisualC+);Checkboxt3=newCheckbox(Java);CheckboxGroupcg=newCheckboxGroup();Checkboxr1=newCheckbox(专科,cg,false);Checkboxr2=newCheckbox(本科,cg,false);Checkboxr3=newCheckbox(硕士,cg,false);Checkboxr4=newCheckbox(博士,cg,false);Labellb1=newLabel(您的学历为:);Labellb2=newLabel(您精通的语言为:);,新建复选框,新建一个复选框组,添加单选按钮,publicQualification(Strings)super(s);setLayout(newGridLayout(10,1);add(lb1);add(r1);add(r2);add(r3);add(r4);add(lb2);add(t1);add(t2);add(t3);publicstaticvoidmain(Stringargs)Qualificationq=newQualification(学识!);q.setSize(400,250);q.show();,将单选按钮添加到窗体,将复选框添加到窗体,选择框,用Choice类可以创建一个选择框Choicemoviestars=newChoice();通过addItem()方法可以添加项目moviestars.addItem(安东尼奥.班德拉斯);moviestars.addItem(莱昂纳多.迪卡普尼奥);moviestars.addItem(桑德.布洛克);moviestars.addItem(休.葛兰特);moviestars.addItem(朱莉亚.罗萡茨);,用来向用户显示一个选择列表,布局管理器,用户界面上的组件可以按不同方式排列。Java使用布局管理器来管理这些排列方式。每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,就要用到布局管理器。AWT提供一组用来进行布局管理的类,称为布局管理器或布局。所有布局都实现LayoutManager接口。,布局类型,Java中的布局类型包括以下几种:FlowLayout(流式布局)BorderLayout(边界布局)GridLayout(网格布局)GridBagLayout(网格包布局)CardLayout(卡片布局),布局类型的选用,每个布局管理器都有自己特定的用途。要按行和列显示几个同样大小的组件,GridLayout会比较合要在尽可能大的空间里显示一个组件,就要选择BorderLayout或GridBagLayout,如何设置布局,每个容器(Container对象)都有一个与它相关的缺省的布局管理器。-Applet的缺省布局是FlowLayout在没有设置新的布局前,在容器中添加组件都按照该容器的缺省布局排列。可以通过setLayout()方法为容器设置新的布局。,FlowLayout,FlowLayout的构造函数有:FlowLayout():生成一个默认的流式布局FlowLayout(intalignment):可以设定每一行组件的对齐方式FlowLayout(intalignment,inthorz,intvert):可以设定组件间的水平和垂直距离,Applet和面板的缺省布局组件从左上角开始按从左到右、从上到下的方式排列,FlowLayoutmylayout=newFlowLayout();FlowLayoutexLayout=newFlowLayout(FlowLayout.RIGHT);setLayout(exlayout);/为容器设置新布局,BorderLayout2-1,下面是BorderLayout所定义的构造函数:-BorderLayout():生成默认的边界布局-BorderLayout(inthorz,intvert):可以设定组件间的水平和垂直距离,窗口、框架和对话框等的缺省布局组件可被置于容器的北、南、东、西或中间位置,BorderLayout2-2,BorderLayout类定义了几个常量值以指定相应区域:BorderLayout.NORTH对应容器的顶部BorderLayout.EAST对应容器的右部BorderLayout.SOUTH对应容器的底部BorderLayout.WEST对应容器的左部BorderLayout.CENTER对应容器的中部加入组件方法:voidadd(ComponentObj,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);.,GridLayout,GridLayout的构造函数如下所示:-GridLayout():生成一个单列的网格布局-GridLayout(introw,intcol):生成一个设定行数和列数的网格布局-GridLayout(introw,intcol,inthorz,intvert):可以设置组件之间的水平和垂直间隔,用于将容器区域划分为一个矩形网格组件按行和列排列,.Buttonbtn;/声明按钮数组Stringstr=1,2,3,4,5,6,7,8,9;setLayout(newGridLayout(3,3);btn=newButtonstr.length;/创建按钮数组for(inti=0;istr.length;i+)btni=newButton(stri);add(btni);,GridBagLayout,通过使用以下语法容器可获得GridBagLayout:GridBagLayoutgb=newGridBagLayout();ContainerName.setLayout(gb);要使用此布局,必须提供各组件的大小和布局等信息。GridBagConstraints类中包含GridBagLayout类用来定位及调整组件大小所需的全部信息。,组件大小不必相同组件按行和列排列放置顺序不一定为从左至右和由上至下,GridBagConstraints类2-1,成员变量列表:gridx,gridy:指定组件放置于哪个单元中gridwidth,gridheight:指定组件将占用多少行和多少列weightx,weighty:指定在一个GridBagLayout中应如何分配空间,这些变量的缺省值为0ipadx,ipady:指定组件的最小高度和宽度,成员变量列表:fill:指定在单元大于组件的情况下,组件如何填充此单元,共有4可选值。缺省值为:GridBagConstraints.NONEanchor:指定将组件放置在单元中的位置,共有9个可选值。缺省值为:GridBagConstraints.CENTER,GridBagConstraints类2-2,CardLayout,可存储几个不同的布局。每个布局就像是一个卡片组中的一张卡片。在一个给定的时间总会有一张卡片在顶层。卡片通常为一个Panel对象。每当需要许多面板切换,而每个面板需要显示为不同布局时,可以使用卡片布局。,注意:,1容器中的布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件的这些属性。如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖。2如果用户确实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论