[计算机软件及应用]第5章图形用户界面设计

上传人:tia****nde 文档编号:70746703 上传时间:2019-01-18 格式:PPT 页数:81 大小:1.86MB
返回 下载 相关 举报
[计算机软件及应用]第5章图形用户界面设计_第1页
第1页 / 共81页
[计算机软件及应用]第5章图形用户界面设计_第2页
第2页 / 共81页
[计算机软件及应用]第5章图形用户界面设计_第3页
第3页 / 共81页
[计算机软件及应用]第5章图形用户界面设计_第4页
第4页 / 共81页
[计算机软件及应用]第5章图形用户界面设计_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《[计算机软件及应用]第5章图形用户界面设计》由会员分享,可在线阅读,更多相关《[计算机软件及应用]第5章图形用户界面设计(81页珍藏版)》请在金锄头文库上搜索。

1、,图形用户界面设计,概述 事件处理 基本控制组件 布局设计 常用容器组件,图形用户界面(Graphics User Interface):是指用图形化的方式实现用户与计算机之间的交互。通过图形的方式,借助于菜单、按钮等标准界面元素和鼠标操作,方便用户向计算机发出命令,启动程序,并将程序运行的结果以图形化的方式显示给用户。,概念,Digital Decade XML Web Services Smart devices,User Interface Evolution,- Kai Fu Lee in 2003,Java GUI三剑客,awt: 抽象窗口工具包,是Java提供的用来建立和设置图形用

2、户界面的基本工具,可用于applet和applications中。它支持图形用户界面编程的功能包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器等,但GUI往往依赖于特定平台。 swing: swing是JFC的一部分,相对于AWT, Swing是轻量级元件。它提供许多比AWT更好的屏幕显示元素,几乎可以实现所有的你能够想到效果,但开发复杂,执行效率较低。 swt/Jface: SWT/JFace直接调用了操作系统的图形库,从而使得Java应用程序的Look & Feel 与操作系统的习惯完全一致;对本地方法的直接调用大幅度的提高了基于SWT/JFace的J

3、ava应用程序的运行速度。它具有比AWT更为丰富的控件,比Swing更为快捷的速度。,图形用户界面构成,组件 构成图形用户界面的最小元素,拿来即用 用图形表示(能在屏幕上显示,能和用户进行交互) Label、Button、Checkbox、RadioButton、TextArea、 TextField、List、Menu,GUI与Java类 java.awt包 javax.swing包,容器 无边框容器: Panel、Applet 有边框容器: Window、Frame、Dialog 自动处理滚动操作容器: Scrollpane,界面元素的类结构,Awt组件,界面元素的类结构,Swing组件

4、javax.swing包,图形用户界面的实现,选取组件 设计布局 响应事件 应用原则: Swing比AWT提供更全面、更丰富的图形界面设计功能 Java 平台支持AWT组件,但鼓励用Swing组件,图形用户界面设计,import java.awt.*; import java.awt.event.*; public class HelloWorldAwt public static void main(String args) Frame f = new Frame(“AWT“); Label label = new Label(“Hello!“); f.add(label); f.addWi

5、ndowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); f.setSize(200, 200); f.setVisible(true); ,import javax.swing.*; import java.awt.event.*; public class HelloWorldSwing public static void main(String args) JFrame f = new JFrame(“Swing“); JLabel label = new J

6、Label(“Hello!“); f.getContentPane().add(label); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); f.setSize(200, 200); f.setVisible(true); ,事件处理,界面设计 (静态) 界面动起来(交互) ! 通过事件触发对象的响应机制 事件:鼠标移动、鼠标点击、键盘键入等 事件处理机制 事件源:与用户进行交互的特定组件,如按钮、鼠标 事件对象:封装了事件的若干信息的事件类

7、对象,例如点 击按钮对应的事件类是ActionEvent。 事件监听者:接收事件对象并对其进行处理的对象 如何实现 容器实现事件监听接口产生一个监听器对象(Listener) 监听谁? 将该监听器对象(容器)注册到组件对象中 M.add*Listener(N); /将N注册为M的监听者 实现对应事件接口中的全部方法,事件处理,事 件 处 理 机 制,事件处理,import java.applet.Applet; import java.awt.*; import java.awt.event.*; /实现事件处理必须引入包 public class Beeper extends Applet

8、implements ActionListener Button button; public void init() button = new Button(“Click Me“); button.addActionListener(this); add(button); public void actionPerformed(ActionEvent e) System.out.println(“Click me once”); ,容器实现监听接口,注册监听(当前操 作类作为监听器),注册为监听者的容器重写 接口中的方法进行事件的 处理,事件类,事件分类,事件分类,事件分类,事件分类,事件类

9、方法,getActionCommand() /返回引发事件的动作命令名 setActionCommand() getModifiers() /按不同的辅助键将事件再细分,getAdjustable() /返回引发变化事件的事件源 getAdjustmentType() /返回状态变化事件的变化类型 getValue() /返回状态变化的数量,getID() /返回事件的类型ID,getSource() /返回产生事件的事件源,EventObject,AWTEvent,ActionEvent,AdjustmentEvent,if(e.getSource()=red) col=Color.red;

10、 if(e.getSource()=green) col=Color.green;,默认命令名: 按钮标签名 菜单项的标签名 列表选项的标签 if(e.getActionCommand()=红) col=Color.red;,事件类方法,getItemSelectable() /返回引发选中状态变化事件的事件源 getItem() /返回引发选中状态变化事件的选项 getStateChange() /返回选中状态变化的类型,getX()、getY()、getPoint() getClickCount() /返回鼠标单击次数,getKeyChar()、getKeyText(),getWindow

11、() /返回引发窗口事件的窗口,getContainer() getChild() /返回引发窗口事件时增减的组件,ItemEvent,MouseEvent,KeyEvent,WindowEvent,ContainerEvent,if(e.getStateChange()=ItemEvent.SELECTED) ,基本控制组件,Component,Button,Canvas,Choice,CheckBox,Label,List,TextComponent,Scrollbar,TextField,TextArea,Container,ScrollPane,Frame,FileDialog,Pan

12、el,Window,Dialog,Applet,使用步骤: 创建基本控制组件类的对象, 指定对象属性; 将组件对象加入到指定容器的 适当位置(布局设计); 创建事件对象的监听者。,基本控制组件,按钮(Button),创建按钮 public Button() public Button(String label) 常用方法 public String getLabel() public void setLabel(String label) public void setActionCommand(String s) public String getActionCommand(String s

13、) 事件响应 java.awt.event.ActionListener(接口) void actionPerformed(ActionEvent e),组件_按钮,其它常用方法,组件_按钮,【例】创建了三个按钮,其标签分别为“隐藏/显示”、“变色”和“变大/变小”,程序运行时出现这三个按钮,其中“隐藏/显示”按钮的背景色为红色,前景色为蓝色。每次单击“变色”按钮时“隐藏/显示”按钮的前景色和背景色互换,每次单击“隐藏/显示”按钮时“变色”按钮隐藏或显示状态切换,而单击“变大/变小”按钮时“隐藏/显示”按钮交替变大或变小。 见代码ThreeButtonDemo.java,基本控制组件,标签(L

14、abel),创建标签 public Label() public Label(String s) public Label(String s, int alignment) 常用方法 public String getText() public void setText(String s) public void setAlignment(int alignment) 事件响应 不引发事件,组件_标签,import java.applet.Applet; import java.awt.*; public class ShowLabel extends Applet Label lab1=ne

15、w Label(); /生成标签对象 public void init() this.setLayout(new FlowLayout(); /设置布局 lab1.setText(“hi,I am a Label”); /设置标签内容 this.add(lab1); /小程序中添加组件 ,组件_文本框,文本框(TextField) TextComponent类的子类,单行的文本区域 创建文本框 public TextField() public TextField(int size) public TextField(String s) public TextField(String s, int size) 常用方法 public void setText(String s) public String getText() public void setEchochar(char c) public void setEditable(boolean b) 事件响应 java.awt.event.TextListener(接口) java.awt.event.ActionListener(接口),组件_文本区,文本区(TextArea) TextComponent类的子类,是多行多列文本框 创建文本区 public Te

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号