




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5讲Java的图形用户界面,用户界面:用户与计算机进行交互的渠道,人(眼睛和手指)和计算机(硬件和软件)的通信,协同完成一定任务。与计算机输入/输出过程都相关。人的主体参与:接受信息、思考、决策、发出命令。计算机软硬件参与的工作:进一步明确所要执行命令,执行计算,反馈信息。命令行式全字符用户界面图形用户界面:让计算机变得更加容易使用,图形用户界面,面向对象的图形用户界面:基于“面向对象”的思想互相交换信息,即尽可能在屏幕上用形象的图标和窗口等来代表有用的资源和可启用的对象。图形界面对象:图标(Icon)窗口(Window)菜单(Menu)/菜单项(MenuItem)按钮(Button)、文本框(Label)、列表框(List),图形用户界面(GraphicalUserInterface,GUI),1、AWT(AbstractWindowToolkit)组件,在Java中,上述对象都存在于抽象窗口工具包AWT中。图形用户界面有哪些基本组件类?层次关系是怎样的?屏幕上如何布局?如何响应用户事件?,1、使用AWT(AbstractWindowToolkit)组件,java.awt及相关包中包含了一个完整的类集以支持GUI程序的设计,其中的类及相互关系可以用下图来描述(重量级构件):,Component类java.awt包中最核心的类就是Component类,它是构成Java图形用户界面的基础,大部分组件都是由该类派生出来的。Component类是一个抽象类,其中定义了组件所具有的一般功能:基本的绘画支持(paint,repaint,update等)、字体和颜色等外形控制(setFont,SetForeground等)、大小和位置控制(SetSize,SetLocation等)、图象处理(实现接口ImageObserver)以及组件状态控制(SetEnable,isEnable,isVisible,isValid等),。常见的组件包括:Button,Checkbox,CheckboxGroup,Choice,Label,List,Canvas,TextComponent,Scrollbar,TextArea,TextField等。,1、AWT(AbstractWindowToolkit)组件,1、AWT(AbstractWindowToolkit)组件,Container类Container类是由Component类派生出来的一种特殊类,用来表示各种GUI组件的容器,其主要功能包括:组件的管理:方法add()可以向其中添加一个组件,remove()删除其中的一个组件,布局管理:每个Container类都和一个布局管理器相联,以确定其中组件的布局。Container类可以通过setLayout()方法设置某种布局方式。常见的Container类有:Frame,Panel,Applet等。,1、AWT组件之容器类Container,Container类的定义:publicabstractclassContainerextendsComponentsprotectedContainer();publicvoidadd(Componentcomp);publicvoidadd(Componentcomp,Objectconstraints);publicInsetsgetInsets();publicvoidsetLayout(LayoutManagermgr);publicvoidvalidate();publicDimensiongetPreferredsize();publicvoindpaint(Graphicsg);,1、AWT组件之容器类Container,AWT组件之Window类,Window类表示一个没有边界和菜单的最高层的窗口,可以包含awt的其他组件,初始化时,窗口是不可见的。publicclassWindowextendsContainerpublicWindow(Frameparent);publicvoidpack();publicvoidshow();publicvoidtoFront();publicvoidtoBack();publicvoidaddWindowListener(WindowListenerl);publicvoidremoveWindowListener(WindowListenerl);,AWT组件之Frame类,Frame是包括标题、菜单、类似于文本区的区域和按钮的图形用户界面,是一个图形窗口。publicclassFrameextendsWindowimplementsMenuContainerpublicFrame();publicFrame(Stringtitle);publicStringgetTitle();publicvoidsetTitle(Stringtitle);publicvoidsetMenuBar(Menubarmb);publicvoiddispose();,AWT组件之Frame类,创建一个FrameMyFrame.javaimportjava.awt.*;publicclassMyFrameextendsFramepublicstaticvoidmain(Stringargs)Framefr=newFrame(FrameTest);fr.setSize(500,500);fr.setBackground(Color.blue);fr.setVisible(true);,AWT组件之Frame中添加其他组件Button,按钮(Button)可点击的用户界面组件,当组件被点击是,产生AcitonEvent事件,可以用ActionListener来监听。构造:Button,Button(Stringlabel)方法:getlabel()获取标签setLabel(Stringlabel)addActionListener(ActionListenerl)removeActionListener(ActionListenerl)MyFirstButton.java,MySecondButton.java,AWT组件之Frame中添加其他组件TextField,单行文本区(TextField)TextComponent只能显示一行信息,当按回车键后,会产生ActionEvent事件,可以用ActionListener来监听。构造:TextField,TextField(Stringtext),TextField(intcolumns),TextField(Stringtext,intcolumns)方法:setText(Stringtext)getText()addActionListener(ActionListenerl)removeActionListener(ActionListenerl)MyFirstTF.java,AWT组件之Frame中添加其他组件TextArea,文本输入区(TextArea)TextComponent可以显示多行信息,并且有滚动条支持。按回车键后并不产生事件,如果要判断是否完成输入,需要用其他方法,如用一个结束按钮。构造:TextArea,TextArea(Stringtext),TextArea(introws,intcolumns),TextArea(Stringtext,introws,intcolumns)方法:setText(Stringtext),getText(),append(Stringtext)addActionListener(ActionListenerl)removeActionListener(ActionListenerl)MyFirstTA.java,AWT组件之Frame中添加其他组件,LabelListScrollbarChoiceCheckboxMenuOtherComp.java,5、AWT中的各种组件,复选框(Checkbox)提供简单的“on/off”开关,同时旁边还可以显示说明信息。当复选框状态发生变化时,会产生ItemEvent事件,可以用ItemListener来监听。复选框组(CheckboxGroup)单选框(RadioButton)当多个复选框组成一组时,就形成了单选框。复选框组中的复选框之间是相互关联的,每次有且只有一个处于选中状态。下拉式菜单(Choice)在下拉式菜单中有多个选项,但每次只能选择一项。当选择发生时,会产生ItemEvent事件,可以用ItemListener来监听。标签(Label)静态文字,多用于指示信息,无事件。列表(List)列表提供了很多文本选项,可以同时看到多项,也有滚动条的支持,并且可以单选或多选。当用户单选或多选时,会产生ItemEvent事件。,5、AWT中的各种组件,/Checkboxadd(newChebox(“one”,null,true);add(newChebox(“two”,null,false);add(newChebox(“three”,null,false);,/CheckboxGroupCheckboxGroupcbg=newCheckboxGroup();add(newChebox(“one”,cbg,true);add(newChebox(“two”,cbg,false);add(newChebox(“three”,cbg,false);,/ChoiceChoicech=newChoice();ch.add(“Green”);ch.add(“Red”);ch.add(“Blue”);,/ListListlst=newList(4,false);lst.add(Mercury);lst.add(Venus);lst.add(Earth);lst.add(JavaSoft);lst.add(Mars);lst.add(Neptune);add(lst);,5、AWT中的各种组件,滚动条(Scrollbar)滚动条一般不单独使用,它通常与另一个组件联合使用,用以指示另一个组件的变化情况。一般情况下,它可以用ScrollPane代替。Scrollbarslider1=newScrollbar(Scrollbar.VERTICAL,0,1,0,25);add(slider1);Scrollbarslider2=newScrollbar(Scrollbar.HORIZONTAL,0,1,0,25);add(slider2);,5、AWT中的各种组件,菜单菜单与其他组件不同,无法直接添加到容器的某一位置,也无法用布局管理器对其加以控制,它由以下概念支撑:菜单条(MenuBar)只能添加到Frame中(用setMenuBar()),作为摆放菜单的容器。菜单(Menu)菜单项容器,负责显示并控制其中的菜单项。它支持菜单嵌套。菜单项(MenuItem)真正的动作,可以用ActionListener监听其事件(ActionEvent)。复选框菜单项(CheckboxMenuItem)真正的动作,可以用ItemListener监听其事件(ItemEvent)。弹出式菜单(PopupMenu)与菜单(Menu)相似,也是菜单项容器,通过其show()方法来显示菜单项。,5、AWT中的各种组件,MenuBarmb;Menum;MenuItemmi1,mi2;CheckboxMenuItemmi3;/Buildthemenubar.mb=newMenuBar();setMenuBar(mb);/Buildfirstmenuinthemenubar.m=newMenu(Menu1,true);mb.add(m);mi1=newMenuItem(MenuItem1);m.add(mi1);mi2=newMenuItem(MenuItem2);m.add(mi2);mi3=newCheckboxMenuItem(MenuItem3);m.add(mi3);,1、使用AWT(AbstractWindowToolkit)组件,Graphics类Graphics类是所有用来在组件上进行图形绘制时所使用的图形环境上下文的父类,它提供了对组件进行图形绘制的一般方法的接口,一个Graphics对象中封装了用来进行图形绘制时必须得状态信息,包括:要绘制的组件对象当前颜色当前字体当前逻辑点操作的功能(XOR和Paint)当前XOR方式的替代颜色,Graphics类还提供了一系列的方法来绘制几何图形、文字、图象以及动画:Lines:drawLine()Rectangles:drawRect(),fillRect()和clearRect()Raisedorloweredrectangles:draw3DRect()和fill3DRect()Round-edgedrectangles:drawRoundRect()和fillRoundRect()Ovals:drawOval()和fillOval()Arcs:drawArc()和fillArc()Polygons:drawPolygon()和fillPo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安达市2025-2026学年七年级下学期语文月考测试试卷
- 2025 年小升初温州市初一新生分班考试语文试卷(带答案解析)-(部编版)
- Python大模型基础与智能应用(微课版)课件第9章 云服务器微调训练大模型应用案例
- 2025年小学美术教师的教学总结3篇
- 2025数学个人教学任务总结范文
- 陕西省咸阳市三原县2024-2025学年八年级(下)期末物理试卷(含答案)
- 第十三章 三角形 单元试卷(含答案) 2025-2026学年人教版数学八年级上册
- 买卖介绍居间合同范本
- 购买养殖围网合同范本
- 房房出租合同范本
- 学校栏杆工程施工方案
- 餐厅转包合同范本
- 2024年锅炉操作工(技师)职业鉴定理论考试题库(含答案)
- 人力资源许可证制度(服务流程、服务协议、收费标准、信息发布审查和投诉处理)
- 外研版(2024)七年级上册英语Starter教学设计
- 湖南省益阳市安化县古楼乡龙马教学点2023-2024学年五年级下学期7月期末语文试题
- 考研保录取合同
- CJ∕T 453-2014 地铁隧道防淹门
- 2019译林版高中英语全七册单词总表
- 《湖北省安全生产条例》考试复习题库80题(含答案)
- 《义务教育语文课程标准》(2022年版)原文
评论
0/150
提交评论