Java面向对象程序设计与系统开发第13章 功能拓展-GUI.ppt_第1页
Java面向对象程序设计与系统开发第13章 功能拓展-GUI.ppt_第2页
Java面向对象程序设计与系统开发第13章 功能拓展-GUI.ppt_第3页
Java面向对象程序设计与系统开发第13章 功能拓展-GUI.ppt_第4页
Java面向对象程序设计与系统开发第13章 功能拓展-GUI.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计与系统开发,第13章功能拓展-GUI,2,驱动任务一,采用GUI的常用容器和组件设计如下的程序界面,3,目标及知识点,4,GUI概述,GUI(GraphicalUserInterface)的中文意思是图形用户界面。允许用户以图形的方式与系统进行互动。在GUI推广之前,用户通常要以文本命令的方式来控制计算机。GUI直观的将计算机的功能呈现给用户,降低了用户使用计算机的门槛。抽象窗口工具包:java.awt:提供基本GUI组件,视觉控制,绘图工具等java.awt.event:事件处理,5,AWT和Swing,AbstractWindowsToolkit(AWT)是最原始的JavaGUI工具包。AWT的主要优点是,它在Java技术的每个版本上都成为了一种标准配置,包括早期的Web浏览器中的Java实现Swing是在AWT组件基础上构建的。所有Swing组件实际上也是AWT的一部分。Swing使用了AWT的事件模型和支持类,例如Colors、Images和Graphics。Swing组件、布局管理器以及事件。,6,AWT和Swing的常用组件与容器对应表,7,容器,AWT组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。类Container是所有容器的父类,常见容器类有窗体(Frame)、对话框(Dialog)、面板(Panel),他们的对象都可以使用方法add()向其中添加组件,8,窗体框架(Frame),一个Frame对象就是一个常见的窗口,它包含有标题栏,可选菜单栏,边框,关闭、最大、最小化按钮常用方法:,9,【例13-1】创建一个窗体。,importjava.awt.*;publicclassexam13_1publicstaticvoidmain(Stringargs)Framef=newFrame();/创建一个框架对象ff.setTitle(MyFrame);/设定框架标题f.setSize(250,200);/设定框架大小f.setBackground(Color.green);/设定背景颜色f.setVisible(true);/显示窗体,10,Dialog,Dialog的对象就是一个对话框,主要用于接受用户输入,它只能基于Frame对象或者另一个Dialog对象上进行显示常用方法,11,【例13-2】创建模式对话框。,importjava.awt.*;publicclassexam13_2publicstaticvoidmain(Stringargs)Framefrm=newFrame(Dialog示例);Dialogdig=newDialog(frm,对话框,true);/模式对话框frm.setBounds(100,100,200,100);/设置窗体位置和大小。dig.setBounds(305,100,200,100);/设置对话框位置和大小frm.setVisible(true);/设置窗体为可见dig.setVisible(true);/设置对话框为可见,12,面板(Panel),Panel是最简单的容器类。和Frame一样,可以将其他组件放在面板提供的空间内,这些组件包括其他面板,但是和Frame不同的是,Panel(面板)不能生成对象将窗口显示出来,它也必须要作为一个组件放到Frame、Window这样的顶层容器中使用常用方法,13,【例13-3】演示面板的使用。,importjava.awt.*;publicclassexam13_3extendsFramepublicstaticvoidmain(Stringargs)Buttonbtn1=newButton(按钮1);/按钮组件Buttonbtn2=newButton(按钮2);/按钮组件Panelpanel=newPanel();/创建一个面板Frameframe1=newFrame();/创建一个窗体frame1.setBounds(100,100,200,200);frame1.setBackground(Color.yellow);/设置窗体的颜色frame1.setTitle(AWTFrame测试);/设置窗体的标题panel.add(btn1);/将按钮添加到面板中panel.add(btn2);/将按钮添加到面板中frame1.add(panel);/将面板添加到窗体中frame1.setVisible(true);/将窗体显现出来,14,组件,组件是以图形方式显示在屏幕上提供人机交互的对象按钮(Button)标签(Label)单行文本输入框(TextField)多行输入框(TextArea)下拉选项框(Choice)滚动列表(List)复选框(Checkbox)复选框组(CheckboxGroup)菜单(Menu),15,按钮(Button),常用方法:,16,【例13-4】演示按钮的创建,importjava.awt.*;publicclassexam13_4publicstaticvoidmain(Stringargs)Framef=newFrame();/创建一个窗体f.setTitle(我的GUI窗口);f.setLayout(null);/将窗体的布局方式去掉,布局我们后面将会讲到f.setSize(300,300);/设置窗体的大小f.setBackground(Color.green);/设置窗体的颜色f.setVisible(true);/将窗体显示出来/按钮Buttonbut1=newButton(确定);/创建一个确定按钮Buttonbut2=newButton(取消);/创建一个取消按钮but1.setBounds(40,40,80,30);/设置按钮在窗体上的位置和大小but2.setBounds(40,70,80,30);/设置按钮在窗体上的位置和大小f.add(but1);/将按钮添加到窗体上f.add(but2);/将按钮添加到窗体上,17,标签(Label),Label对象是一个用来放置文本的组件常用方法:,18,【例13-5】演示标签的使用。,importjava.awt.*;publicclassexam13_5publicstaticvoidmain(Stringargs)Framef=newFrame();f.setTitle(我的GUI窗口);f.setLayout(null);/不采用布局f.setSize(200,200);f.setBackground(Color.green);f.setVisible(true);/标签Labellabel1=newLabel();Labellabel2=newLabel(欢迎你使用标签!);Labellabel3=newLabel(“这是一个写标签的例子”,Label.RIGHT)label1.setBounds(40,20,150,20);/标签的位置和大小label2.setBounds(40,40,150,20);/标签的位置和大小label3.setBounds(40,60,150,20);/标签的位置和大小f.add(label1);/向窗体容器中添加标签f.add(label2);/向窗体容器中添加标签f.add(label3);/向窗体容器中添加标签,19,单行文本输入框(TextField),Label对象是一个用来放置文本的组件常用方法:,20,【例13-6】创建文本框。,importjava.awt.*;publicclassexam13_5publicstaticvoidmain(Stringargs)Frameframe=newFrame(登录对话框);/创建Frameframe.setLayout(null);/指定布局管理器,关于布局后面我们将专题解frame.setSize(200,150);frame.setVisible(true);Labellblid=newLabel(ID:,Label.CENTER);/居中对齐lblid.setBounds(20,30,50,20);TextFieldid=newTextField();/创建一个单文本框,用于接受用户ID输入id.setBounds(75,30,110,20);Labellblpwd=newLabel(PWD:,Label.CENTER);lblpwd.setBounds(20,55,50,20);TextFieldpw=newTextField();/创建一个单文本框,用于接受用户密码输入pw.setBounds(75,55,110,20);Buttonlogin=newButton(登录);/登录按钮login.setBounds(40,80,60,20);-,Buttoncancel=newButton(取消);/取消按钮cancel.setBounds(105,80,60,20);pw.setEchoChar(*);/指定密码显示字符为*/向frame顺序添加组件frame.add(lblid);/添加标签组件frame.add(id);/添加文本框frame.add(lblpwd);frame.add(pw);/添加文本框frame.add(login);/添加按钮frame.add(cancel);/添加按钮,21,下拉选项框(Choice),常用方法:,22,【例13-7】演示创建下拉选项框。,importjava.awt.*;publicclassexam13_7publicstaticvoidmain(Stringargs)Framef=newFrame();f.setTitle(我的GUI窗口);f.setLayout(null);f.setSize(500,300);f.setBackground(Color.green);f.setVisible(true);/选项框Labellabel=newLabel(选项框的例子:);label.setBounds(20,50,80,20);-,Choicec=newChoice();/创建一个下拉选项框c.addItem(北京);/添加选项c.addItem(上海);c.addItem(天津);c.addItem(南京);c.addItem(郑州);c.addItem(武汉);c.setBounds(110,50,60,20);/设置选项框的位置和大小f.add(label);f.add(c);,23,滚动列表(List),常用方法:,24,【例13-8】演示滚动菜单的使用。,importjava.awt.*;publicclassexam13_8publicstaticvoidmain(Stringargs)Frameframe=newFrame(Listtest);Listlist1=newList();/不可多选的列表Listlist2=newList(6,true);/true表示可以多选,显示6行-frame.add(list2);frame.add(list1,Center);/向frame添加list1frame.add(list2,South);/向frame添加list2frame.setSize(300,200);frame.setVisible(true);,list1.add(长江);list1.add(黄河);list1.add(“淮河”);list2.add(北京大学);list2.add(清华大学);list2.add(吉林大学);list2.add(复旦大学);list2.add(南开大学);list2.add(天津大学);list2.add(南京大学);,25,复选框(Checkbox),常用方法:,26,复选框组(CheckboxGroup),常用方法:,27,【例13-10】单选按钮示例,importjava.awt.*;publicclassexam13_10publicstaticvoidmain(Stringargs)Frameframe=newFrame(CheckboxGroup);CheckboxGroupradioGroup=newCheckboxGroup();/复选框组/cb1、cb2、cb3属于复选框组radioGroupCheckboxcb1=newCheckbox(红色,radioGroup,true);Checkboxcb2=newCheckbox(黄色,radioGroup,false);Checkboxcb3=newCheckbox(蓝色,radioGroup,false);frame.add(cb1);frame.add(cb2);frame.add(cb3);frame.setLayout(newFlowLayout();frame.setSize(200,100);frame.setVisible(true);,28,菜单(Menu),Java提供下列类来创建和管理菜单:MenuBar:菜单条Menu:菜单MenuItem:菜单项CheckboxMenuItem:带复选框的菜单项,29,菜单(Menu),创建一个完整的菜单参照如下的步骤:创建MenuBar类的对象为你想在菜单栏上出现的每个菜单,创建Menu类对象调用MenuBar类的add()方法来为菜单栏增加菜单对象为每个子菜单项创建MenuItem或CheckboxMenuItem类的对象调用Menu对象的add()方法来增加菜单选项到相应的菜单里。,30,任务实现,分析该任务中涉及到的GUI容器和组件,创建窗体类,给窗体类添加所需要的组件,创建初始化容器和组件的方法,利用构造函数在创建对象的时候自动调用步骤4所创建的方法,让窗体显示出来,31,驱动任务二,在上一节任务开设新账号界面的基础上实现注册账号功能,32,目标及知识点,33,事件和事件源,事件就是在用户界面上发生与用户交互行为而产生的一种效果,如鼠标的各种动作(点击、移入、移出等)、键盘的操作(按下、释放等)以及发生在组件上的各种动作(获得焦点、失去焦点等)事件源就是产生事件的那个组件,比如点击按钮产生了一个点击事件,那么这个被点击的按钮就是事件源。,34,事件监听器,如何捕获事件是我们在做事件处理的时候首先要考虑的问题,这就需对各个事件进行监听,判断该事件是否发生。常见的事件监听器,35,【例13-11】,Frameframe=newFrame();frame.addWindowListener(newWindowListener()publicvoidwindowActivated(WindowEvente)/处理当窗口在最前面时的事件publicvoidwindowClosed(WindowEvente)/处理窗口关闭完成后的事件publicvoidwindowC

温馨提示

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

评论

0/150

提交评论