图形用户界面一_第1页
图形用户界面一_第2页
图形用户界面一_第3页
图形用户界面一_第4页
图形用户界面一_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1 第15讲图形用户界面 教学目标 了解GUI掌握AWT窗口对象类掌握AWT窗口对象组件 GUI设计概述 图形用户界面 GUI GraphicsUserInterface 是软件产品与用户交互的界面接口 是软件产品中用户可以看到并直接操作的部分 美观大方 简单易用的友好操作界面是软件产品成功的重要因素 在Java中 AWT AbstractWindowingTookit 是用来处理图形最基本的方式 它可以用来创建Java的applet及窗口程序 AWT是Java早期的技术 提供的组件有限 无法满足应用程序多样化组件的要求 为了弥补这个不足 Sun公司开发出Swing包 它有别于AWT 不依赖于特定的系统平台 对外提供多样化的组件及外观 并且保持外观风格的一致 GUI组成元素分类 容器容器是用来组织或容纳其它界面成份和元素的组件 Java提供了相应的容器类 例如 框架 J Frame 面板 J Panel及滚动面板 J ScrollPanel等类 控制组件控制组件是图形用户界面的基本单位 里面不再包含其它的成份 用户通过控制组件与程序进行交互 用户自定义成份除了上述的标准图形界面元素外 编程人员还可以根据用户的需要 使用各种字型字体和颜色设计一些几何图形 标志图案等 它们被称作用户自定义成份 用户自定义成份通常只起到显示结果 装饰美化的作用 不能响应用户的动作 不具有交互功能 GUI的设计原则 图形用户界面最重要的设计原则就是充分为用户考虑 应该为用户提供一个可用 功能性好 安全高效的界面 怎样创建一个以用户为中心的界面呢 首先 收集软件用户尽可能多的信息 用户属于哪个群体 用户对计算机操作的熟悉程度 用户年龄多大 教育程度如何 其次 需要设计用户和计算机之间交换信息的形式 用户如何向程序输入信息 用鼠标从菜单选取 用鼠标点击图标 用快捷键 用键盘输入还是语音命令 系统应该提供何种反馈 如当鼠标停留在对象上的时候 为了显示它是可选的 对象要高亮度显示 或至少要改变一个选项的颜色以表示它被选中了 用户的选项 程序的反馈以及程序的输出如何安排在屏幕上 如何创建想要的空间布局 如何使用Java内建功能来布置图形组件 GUI的设计步骤概要 当设计好一个GUI的草案 如何判断它是否是一个良好的以用户为中心的设计呢 一般来说 好的界面应该让用户能够控制 界面应该具有物理舒适感 易于学习 易于记忆 同时操作不易出错 要定义一个GUI 一般需要以下三个步骤 1 创建这个GUI的组件 如按钮 标签 菜单等2 在窗口中排列这些组件 3 让这些组件响应用户输入 事件处理 AWT窗口对象类简介 抽象窗口工具包 AWT AbstractWindowingToolkit 为开发者提供建立图形用户界面的工具集 对Java运行的每一个平台 AWT的组件通过它们各自的代理映射成平台特定的组件 AWT适用于简单的GUI程序 AWT基本组件 Frame Frame类继承Container类 是一个容器 用来容纳按钮 文本框等其他窗口组件 也可以容纳其他容器对象 AWT在实际的运行过程中是调用所在平台的图形系统 因此外观依赖于所使用的操作系统Frame的外观就像我们平常在windows系统下见到的窗口 有标题 边框 菜单 大小等等 每个Frame的对象实例化以后 都是没有大小和不可见的 因此必须调用setSize 来设置大小 调用setVisible true 来设置该窗口为可见的 如果不再需要一个Frame时 应调用dispose方法撤消它 Frame类大致框架 publicclassFrameextendsWindowimplementsMenuContainer publicFrame publicFrame Stringtitle 重载的构造方法publicStringgetTitle publicvoidsetTitle Stringtitle publicMenuBargetMenuBar publicvoidsetMenuBar MenuBarmb publicvoiddispose Ex9 1 javaimportjava awt publicclassEx9 1 staticFramefrm newFrame 第一个窗口程序 创建一个窗口staticLabellab newLabel 蓝色的窗口 创建一个标签publicstaticvoidmain Stringargs frm setSize 200 150 设置窗口的高为200像素 宽为150像素frm setBackground Color BLUE 设置窗口的背景为蓝色frm setLocation 250 250 设置窗口的位置lab setForeground Color yellow 设置标签的前景色frm add lab 将标签对象加入窗口中frm setVisible true 显示窗口 Frame示例 程序分析 这个例子中 在类Ex9 1里面定义了两个静态的对象 一个是Frame窗口对象 在Java里面称为一个容器 另外一个是Label标签对象 它是一个AWT基本组件 通过setSize setBackground setLocation 等方法来改变窗口对象的状态 怎样才能使frm窗口中显示lab对象呢 通常使用add 方法将一些基本组件加入到容器里面 对于这个窗口 可以使用最大化按钮 最小化按钮 拖拽边框来改变窗口的大小 但是却不能用点击关闭按钮的办法来关闭窗口 即使使用ALT F4也不行 怎样才能实现窗口的关闭呢 Java将利用窗口关闭事件来进行处理 将在本章第5节介绍 AWT基本组件 Button 按钮是交互式界面常用的组件 用户可以通过点击按钮控制程序的运行 单击按钮将产生ActionEvent事件publicclassButtonextendsComponent publicButton publicButton Stringlabel publicStringgetLabel publicvoidsetLabel Stringlabel publicvoidaddActionListener ActionListenerl publicvoidremoveActionListener ActionListenerl importjava awt publicclassEx9 3 publicstaticvoidmain Stringargs Framefrm newFrame 按钮对象的创建 Buttonbtn1 newButton 按钮一 创建一个按钮Buttonbtn2 newButton 创建一个按钮btn2 setLabel 按钮二 设置按钮标题frm setTitle 窗口对象的创建 frm setLayout null 取消默认的布局frm setSize 200 150 frm setLocation 250 250 frm add btn1 frm add btn2 btn1 setBounds 40 40 80 30 设置按钮的位置和大小btn2 setBounds 40 80 80 30 frm setVisible true 显示窗口 程序分析 这个例子中 在类Ex9 3程序中创建了2个按钮对象 通过Frame类对象frm的add 方法加入到窗口中 程序中出现的setLayout 方法是用来设置窗口内组件的布局方式的 按钮对象的setBounnds 方法是在Component类中定义的 作用是设置组件的位置和大小 Button示例 AWT基本组件 Label 标签 label 是用来在窗口中显示文字的文本框 也是在屏幕上显示图像或文本的一种最简单和快捷的方式 单行非编辑文本组件 用于在一个版面中提供简单的信息描述 静态文字 无事件 publicclassLabelextendsComponet publicstaticfinalintLEFT CENTER RIGHTpublicLabel publicLabel Stringtext publicLabel Stringtext intalignment publicStringgetText publicvoidsetText Stringtext importjava awt publicclassEx9 4 publicstaticvoidmain Stringargs Framefrm newFrame 标签对象的创建 Labellab newLabel frm setLayout null frm setSize 200 150 frm setLocation 250 250 frm setBackground Color YELLOW lab setText 黑体斜体字 lab setBackground Color PINK lab setForeground Color BLUE lab setFont newFont 黑体 Font ITALIC 20 lab setLocation 20 60 lab setSize 120 30 frm add lab frm setVisible true 程序分析 这个例子中 在类Ex9 4程序中创建了2个标签对象 分别使用setBackground 方法和setForeground 方法设置标签的背景和前景颜色 Label示例 Color类用于封装默认sRGB颜色空间的颜色 Font用来规范组件所用的字体 大小和样式等 AWT基本组件 TextField与TextArea AWT中主要用来处理文字输入组件的类 TextField用来处理单行文字 而TextArea可以做多行文字处理 这两个类都继承自TextComponent类 TextComponent类 允许创建 检索和修改文本的类 publicclassTextComponentextendsComponent publicvoidsetText Stringt publicbooleanisEditable publicvoidsetEditable booleanb publicStringgetSelectedText publicvoidselect intselectionStart intselectionEnd publicvoidsetCaretPosition intposition publicintgetCaretPosition publicvoidaddTextListener TextListenerl publicvoidremoveTextListener TextListenerl importjava awt publicclassEx9 5 publicstaticvoidmain Stringargs Framefrm newFrame 更改昵称和密码 Labellab1 newLabel 用户名 Labellab2 newLabel 昵称 Labellab3 newLabel 密码 TextFieldtxf1 newTextField student001 TextFieldtxf2 newTextField 学生 TextFieldtxf3 newTextField 123456 frm setSize 240 120 frm setLayout null frm setBackground Color yellow lab1 setBounds 20 40 40 20 lab2 setBounds 20 60 40 20 lab3 setBounds 20 80 40 20 txf1 setBounds 80 40 120 20 txf2 setBounds 80 60 120 20 txf3 setBounds 80 80 120 20 txf1 setEditable false 设置不可编辑txf3 setEchoChar 设置字符显示为 frm add lab1 frm add txf1 frm add lab2 frm add txf2 frm add lab3 frm add txf3 frm setVisible true 程序分析 这个例子中 在类Ex9 5程序中使用了3个文本框 其中第一个文本框使用setEditable 方法设置成不可编辑 第二个文本框默认 第三个文本框里面的输入字符显示成 TextField示例 importjava awt publicclassEx9 6 publicstaticvoidmain Stringargs Framefrm newFrame 文本域 TextAreatxa txa newTextArea 8 14 TextArea SCROLLBARS BOTH frm setLayout null txa setBounds 30 45 180 100 frm setSize 240 180 frm add txa frm setVisible true 程序分析 这个例子中 在类Ex9 6程序中程序中 产生一个8行14列的文本框 这个文本框带有垂直和水平滚动条 TextArea示例 AWT基本组件 Checkbox CheckboxGroup 复选框可以让用户选取项目 通常分为复选和单选两种 复选表示多个选项可以同时选择 而单选择表示一组选项中只能选择一项 AWT中提供了Checkbox类来实现复选功能 而实现单选 则必须将多个复选对象利用CheckboxGroup类对象组成一组 请参考API文档熟悉Checkbox CheckboxGroup类的构造方法和常用方法 importjava awt publicclassEx9 7 publicstaticvoidmain Stringargs Framefrm newFrame 复选框 Labellab newLabel 您喜欢的水果 Checkboxckb1 newCheckbox 苹果 true Checkboxckb2 newCheckbox 梨子 true Checkboxckb3 newCheckbox 桔子 frm setSize 200 150 frm setLayout null frm setBackground Color yellow lab setBounds 20 30 140 20 ckb1 setBounds 20 50 140 20 ckb2 setBounds 20 70 140 20 ckb3 setBounds 20 90 140 20 frm add lab frm

温馨提示

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

评论

0/150

提交评论