第六章图形用户界面
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
例
import java.awt.*; public class Comp1{ public static void main(String aa[]){ Button b1=new Button("test1"); Button b2=new Button("test2"); Frame f=new Frame("test"); Panel p=new Panel(); p.add(b1); p.add(b2); f.add(p); f.pack(); f.setVisible(true); } }
13
Diaolg类
对话框需要与Frame相关联,但不是放在Frame中,对 话框中可以放置组件。对话框有两种,一种可以与 Frame交互(非模式),另一种不可以(模式)。 构造方法: public Dialog(Dialog owner) public Dialog(Dialog owner,String title) public Dialog(Dialog owner,String title,boolean modal) public Dialog(Frame owner) public Dialog(Frame owner, boolean modal) public Dialog(Frame owner,String title) public Dialog(Frame owner,String title,boolean modal)
Color 颜色类
Button 按钮类 TextField 文本行类
BorderLayout FlowLayout GridLayout 布局管理器类
TextComponent 文本组件类 TextArea 文本区类
Graphics 图形类
4
Java awt 的组件类库
Button Canvas
CheckBox
6
Component组件
组件类Component是一个抽象类,是AWT 组件类层次结构的根类,实际使用的组件 都 是 Component 类 的 子 类 。 Component 类 提供对组件操作的通用方法,包括设置组 件位置、设置组件大小、设置组件字体、 响应鼠标或键盘事件、组件重绘等。
7
public abstract class Component extends Object implements ImageObserver, MenuContainer, Serializable { public int getWidth() //宽度 public int getHeight() //高度 public void setSize(int width, int height) //宽度和高度 public int getX() //位置的X坐标值 public int getY() //位置的Y坐标值 public void setLocation(int x, int y) //坐标位置,x、y指定组件左上角相对于容器的坐标位置 public void setBounds(int x, int y, int width, int height) //坐标位置和宽度、高度 public Color getBackground() //获得组件的背景颜色 public void setBackground(Color c) //设置组件的背景颜色 public Font getFont() //获得组件字体 public void setFont(Font f) //设置组件字体 public void setVisible(boolean b) //设置组件是否显示 }
12
Frame类
1、构造方法 public Frame() 创建无标题的窗口。 public Frame(String title) 创建带标题的窗口。 2、常用方法: public void setSize(int width,int height) public void setVisible(boolean v) public void setResizable(boolean b) public void setIconImage(Image m) public void setBounds(int x,int y,int w,int h) public void pack() public void setMenuBar(MenuBar m) public void dispose();
2
AWT与Swing
AWT中的组件直接系在本地平台的图形用户 界面上,称为重量级构件。 Swing构件称为轻量级构件,用JAVA编写, 是第二代GUI开发工具,建立在AWT之上, 用新版本的组件替代了旧版本的组件,提供 了许多新的组件和相关的API。与平台无关, 包含在javax.swing包中。 Component类是AWT中大多数组件的父类, JComponent类是Swing中大多数组件的父类。
第6章 图形用户界面
图形用户界面(Graphical User Interface, GUI),使用图形方式借助菜单、按钮等标 准界面元素和键盘、鼠标操作,实现人机 交互。
AWT组件及其属性类 事件处理 Swing组件 图形图像
1
AWT简介
抽象窗口工具(Abstract Window Toolkit,AWT) 为开 发者提供了建立图形用户界面的工具集。主要功能包括:
对Frame容器需要调用setVisible(true)显示出其内的各个 组件,而对Dialog容器需要调用show()显示出其内的各个 组件。
15
Frame的使用步骤
创建对象
Frame fr=new Frame(―My Test‖); 参数为窗口标题栏中显示的内容 设置大小 fr.setSize(500,500); //将窗口设置为指定的像素宽和高 fr.pack(); //自动调整窗口大小 显示 fr.setVisible(true);
3
Java awt 的结构
java.lang.Object Window 窗口类 Component 组件类 Container 容器类 Panel 面板类 Font 字体类 Label 标签类 Dialog 对话框类 FileDialog 文件对话框类 Frame 框架类
java.applet.Applet
10
Container类的常用方法
ቤተ መጻሕፍቲ ባይዱ
add(Component c) add(Component c, int index) remove(Component c) remove(int index) removeAll() setLayout(LayoutManger m)
11
窗口与面板
Choice Component Container Label List Scrollbar
TextComponent
Panel ScrollPanel
Applet
Frame Window Dialog TextArea FileDialog
TextField
5
组件
组件(component)是构成图形用户界面的基本 成分和核心元素。Java的图形用户界面的最基 本组成部分是组件,组件是一个可以以图形化 的方式显示在屏幕上并能与用户进行交互的对 象,例如一个按钮,一个标签等。组件不能独 立地显示出来,必须将组件放在一定的容器中 才可以显示出来。 组件是具有以下特性的对象:运行时可见,能 拥有并管理其他组件,在窗口中可操纵,可获 得输入焦点等。
16
标签
public class Label extends Component implements Accessible
{ public static final int LEFT public static final int CENTER public static final int RIGHT public Label() public Label(String text) public Label(String text, int alignment) public String getText() public void setText(String text) }
屏幕上组件大小与位置控制
preferredSize(),minimumSize()方法可以通知布局管理器组件 的最佳与最小的大小
9
容器简介
组件不能独立地显示出来,必须将组件放在一定 的容器中才可以显示出来。 容器是一种特殊的组件,具有组件的所有性质, 主要功能是容纳其他组件和容器。 Container类是所有容器类的父类。容器有两类: 窗口Window和面板Panel (ScrollPanel),窗口可以 独立存在, 面板必须放在其他容器中。 所有容器都通过方法add()向容器中增加组件。 窗口包括两类:Frame和Dialog,Frame一般作为 图形界面最顶层的容器。
18
按钮
public class Button extends Component implements Accessible
{ public Button(String text) }
19
基本组件的使用方法
创建对象,进行初始化。例 Button b=new Button(―Button Test‖); 参数为按钮上显示的内容 通过容器的方法add( )将组件添加到容器中,例 f.add(b); 对其进行事件编程。 例外: 有些组件需要多个参数。 单选项需要创建一个检查框组,将其与单选框关联。 下拉列表框需要用addItem()方法添加选项。
public class TextField extends TextComponent { public TextField() public TextField(String text) public TextField(int columns) public TextField(String text, int columns) }
17
文本行
public class TextComponent extends Component implements Accessible { public String getText() public void setText(String t) public void setEditable(boolean b) }
14
容器组件的使用方法
在init()或Frame的构造函数中,首先创建容器组件对象并 实例化,然后设置布局方式。 分别创建在容器内待包含的各个基本组件并实例化。 调用容器的add( )方法将各个基本组件加入到容器内。
再调用add( )将各个子容器加入到Applet中或Frame中; 然后注册各个基本组件和容器的事件监听器对象。
用户界面组件 事件处理模型 图形和图象处理工具 布局管理器 数据传送类
AWT主要涉及java.awt包, java.awt包中提供了图形用 户界面设计所使用的类和接口,主要包括3个概念:
组件:Component 容器:Container 布局管理器:LayoutManager
容器有两种:窗口(window)和面板(panel)。 两者的区别: 窗口可以独立存在,可被移动,可被最大化和最 小化,有标题栏、边框、可添加菜单栏。 面板不能独立运行,必须包含在另一个容器里。 面板没有标题,没有边框,不可添加菜单栏。 一个窗口可以包含多个面板,一个面板可以包含 另一个面板,但是面板不能包含窗口。 Java Applet应用程序使用Panel的子类Applet作为 容器,Applet是一个能够嵌入浏览器运行的特殊容 器。
8
Component类提供的功能
基本绘图支持
paint(), update(), repaint() 方法显示组件自身。
事件处理。
通用的事件处理方法:handleEvent();特定的事件处理方法,如
action()
组件外观控制——字体、颜色 图象处理
Canvases以及多数container能够显示图象