Presentation is loading. Please wait.

Presentation is loading. Please wait.

第4章 Java图形用户界面设计.

Similar presentations


Presentation on theme: "第4章 Java图形用户界面设计."— Presentation transcript:

1 第4章 Java图形用户界面设计

2 本章学习要点 1.掌握常用的GUI标准组件及图形界面的设计方法 2.掌握JAVA的事件处理机制和常用事件响应代码的编写方法;
3.掌握布局管理、对话框及菜单的设计方法 本章学习要点 2.掌握JAVA的事件处理机制和常用事件响应代码的编写方法;

3 目录 CONTENTS 4.1 概述 AWT和Swing组件 4.2 4.3 事件处理 4.4 对话框 4.5 菜单

4 4.1 概述

5 GUI—图形用户界面(Graphics User Interface)
4.1.1 基本概念 GUI—图形用户界面(Graphics User Interface) 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

6 1 2 4.1.1 基本概念 (1)AWT—抽象窗口工具 (2)Swing——轻量级组件 (Abstract Window Toolkit)
Java中用来生成图形用户界面的类库是java.awt包,它Java中基本包中最大的一个,定义了所有GUI组件类,以及其它用于构造图形界面的类。Sun公司在JDK1.0中就提供了AWT。 为了实现跨平台特性,AWT类库中的各种操作被定义成在一个并不存在的“抽象窗口”中进行。 1 (2)Swing——轻量级组件 2 Swing包含250多个类(有些是组件,有些是支持类,组件的名字都以 J 开头), Swing提供了40多个组件,是AWT的4倍,用轻量组件(没有本地对等组件)代替了AWT的重量组件(与本地对等组件相关联)。

7 4.1.1 基本概念 GUI设计涉及到的类和接口 Java.lang.Object AWTEvent Font Componet
Container Panel Applet Window Frame Graphics MenuComponent 各种布局管理器类 GUI设计涉及到的类和接口

8 Component 组件是所有AWT组件的基类,提供了基本的显示和事件处理特征。
4.1.1 基本概念 Component Button Canvas Container Panel Applet Scrollpanel Window Frame Dialog FileDialog Choice Checkbox Textcomponent TextArea Textfield Lable Scrollbar List 容器 组件名 Component 组件是所有AWT组件的基类,提供了基本的显示和事件处理特征。

9 Swing GUI组件=java.awt包的各种GUI组件+新功能
4.1.1 基本概念 Swing GUI组件 在最新的Java EE中,javax.swing包被列入Java的基础类库JFC。 Swing GUI组件=java.awt包的各种GUI组件+新功能 Swing包 特点 包含250多个类:支持类、组件类(都以 J 开头) 轻量组件(没有本地对等组件)代替了AWT的重量 组件(与本地对等组件相关联) Swing包含250多个类(有些是组件,有些是支持类,组件的名字都以 J 开头), Swing提供了40多个组件,是AWT的4倍,用轻量组件(没有本地对等组件)代替了AWT的重量组件(与本地对等组件相关联)。 重量级组件是指组件的属性跟操作系统有关,轻量级组件跟操作系统无关,轻量级组件在不同平台下显示效果一样 。

10 4.1.1 基本概念 JComponent 类是许多Swing组件的基类。 Swing包中有4个最重要的类: Object
AWT Component 布局管理器位于AWT中 Java.awt Window Container Panel Frame Dialog Applet Swing JApplet JFrame JDialog JComponent Javax.swing AbstractButton JPanel Frame JLabel JMenuBar JMenuItem JFrame JTextComponent JButton JMenu JTextArea JTextField 图5-18 Swing类的层次结构 Swing包中有4个最重要的类: JApplet、JFrame、JDialog、JComponent  JComponent的所有子类都是轻量级组件,其它三个都是重量级组件,轻量级组件必须在这些重量容器中绘制自己。

11 Swing采用了一种MVC的设计范式,即:
4.1.1 基本概念 模型-视图-控制器”(Model-View-Controller) Swing采用了一种MVC的设计范式,即: 模型(Model)——用于存储定义该组件的数据; 视图(View)——用模型中的数据生成该组件的可视化表示(即显示出该组件); 控制器(Controller)——响应用户对该组件的交互操作。 MVC是一种先进的组件设计模式。

12 4.1.1 基本概念 MVC结构示意图 视图 (组件外观) 模型 UI代表 (组件数据) (向组件提供外观和感觉) 控制器
(处理事件,更改模型或者视图)

13 4.1.2 图形用户界面元素 4.1.2 图形用户界面元素 组件 用户自定义成分 容器

14 4.1.2 图形用户界面元素 (1)容器(container) 容器是用来组织其他界面成分和元素的单元,如窗体(form、frame)。
主要作用: 用容器可以分解图形界面的复杂性。 特点: 容器有一定的范围、位置、背景,容器里可以包含许多其他的界面元素,并按一定规 则来排列所包含的元素,可以被用来完成某种交互功能,容器还可能被包含在其他容 器中。

15 创建组件对象→确定属性→布局到容器中→注册事件监听者→重写事件处理方法。
4.1.2 图形用户界面元素 (2)组件(Component) 组件是图形界面的最小单位,里面不能再包含其他成分。如:命令按钮、文本域、标签等。组件的作用是完成与用户的一次交互,如接受用户指令、向用户显示文本等。 TextField input=new TextField(6); add(input); input.addActionListener(this); public void actionPerformed(ActionEvent e) { if(e.getSource()==input) output.setText(input.getText()+“,欢迎你!”); } 使用组件的步骤: 创建组件对象→确定属性→布局到容器中→注册事件监听者→重写事件处理方法。

16 4.1.2 图形用户界面元素 图形用户界面基本元素 常见的图形界面元素 基本组件 容器 可放置基本组件的组件 窗体、面板、框架
所有的组件都必须存在于容器之中 顶层容器Container 文本框、按钮、输入框 单选/多选按钮、下拉框/复选框 …… 基本组件 容器

17 4.1.2 图形用户界面元素 常用的图形组件 java.awt.* Label、Button、 List、TextField…
Frame、Panel、 Container javax.swing.* JLabel、JButton 、Jlist、 JTextField… JFrame、JPanel AWT Swing 不要在容器中混合使用AWT和Swing组件

18 常用的图形组件 更多组件可参考javax.swing.*
4.1.2 图形用户界面元素 常用的图形组件 组件类名 描述 JLabel 不可编辑的文本行(可带图标) JTextField 可编辑的文本行 JButton 按钮 JCheckBox 复选框 JRadioButton 单选框 JComboBox 下拉框 JPanel 面板 JFrame 框架 更多组件可参考javax.swing.*

19 4.1.2 图形用户界面元素 (3)用户自定义图形界面成分
用户自定义成分是指利用Java类库中的类及其方法来绘制符合用户特定要求的图形界面成分,也可以将已经存在的图形、动画等加载到当前程序中来。 1) 绘制图形 Graphics类——绘制直线、各种矩形、多边形、圆和椭圆等 Point类——表示一个象素点 Dimension类——表示宽和高 Rectangle类——表示一个矩形 Polygon类——表示一个多边形 Color类——表示颜色

20 Java中用一个Font类的对象来表示一种字体显示效果,包括字体类型、字型和字号。
4.1.2 图形用户界面元素 2) 显示文字 Java中用一个Font类的对象来表示一种字体显示效果,包括字体类型、字型和字号。 Font.PLAIN ——正常 字型常量 Font.BOLD ——粗体 Font.ITALIC ——斜体 创建字体对象 Font MyFont=new Font(“TimesRoman”,Font.BOLD,12); 使用字体对象 g.setFont(MyFont); //Graphics对象 btn.setFont(MyFont); //某个名为btn的按钮对象 可以用getFont()方法返回当前对象使用字体的情况。

21 4.1.2 图形用户界面元素 3) 控制颜色 Applet中显示的字符串或图形的颜色可以用Color类的对象来控制,每个Color对象代表一种颜色,用户可以直接使用系统定义好的13种颜色常量,也可以通过红、绿、蓝三色比例来创建自己的Color对象。 Color类的构造函数 public Color(int Red,int Green,int Blue); // 每个参数的取值范围在0-255之间。 public Color(float Red, float Green, float Blue); // 每个参数的取值范围在0-1.0之间。 public Color(int RGB); // 指明RGB三色的比例,这个参数的0-7比特代表红色的比例,8-15比特代表绿色的比例,16-23比特代表蓝色的比例。

22 4.1.2 图形用户界面元素 例: 创建自己的颜色: Color blueColor= new Color(0,0,255);
g. g.setColor(blueColor); 利用系统的颜色常量: g.setColor(Color.cyan); GUI控件的颜色设置方法 public void setBackground(Color c); //设置背景颜色 public Color getBackground(); //取得背景颜色 public void setForeground(Color c); //设置前景颜色 public Color getForeground(); //取得前景颜色

23 Java中可以利用Graphics类的drawImage()方法显示图象。显示图象涉及3个方法:
4.1.2 图形用户界面元素 4) 显示图象 Java中可以利用Graphics类的drawImage()方法显示图象。显示图象涉及3个方法: drawImage(参数1,参数2,参数3) 参数1——Image对象,可以用系统为Applet类定义的getImage()方法获得。 参数2、参数3——显示时图象左上角的X.Y坐标 getImage(参数1,参数2 ) 参数1——图象文件所在的URL地址 参数2——图象文件的文件名 getDocumentBase() 获取含有该Applet的HTML文件的URL地址。

24 4.1.2 图形用户界面元素

25 4.1.2 图形用户界面元素 5) 实现动画效果 用Java实现动画的原理与放映动画片类似,取若干相关的图象或图片,顺序、连续地在屏幕上先显示,后擦除,循环往复就可以获得动画的效果。 小结: 在设计和实现一个程序的图形用户界面的过程中,绘制用户自定义成分仅完成了部分工作,可以美化用户界面,但无法接收程序运行过程中的用户指令,不能提供与用户的动态交互,还需要通过Java中的事件处理机制来实现。


Download ppt "第4章 Java图形用户界面设计."

Similar presentations


Ads by Google