JAVA课件2Lect_第11章

上传人:w****i 文档编号:92221299 上传时间:2019-07-08 格式:PPT 页数:129 大小:573.50KB
返回 下载 相关 举报
JAVA课件2Lect_第11章_第1页
第1页 / 共129页
JAVA课件2Lect_第11章_第2页
第2页 / 共129页
JAVA课件2Lect_第11章_第3页
第3页 / 共129页
JAVA课件2Lect_第11章_第4页
第4页 / 共129页
JAVA课件2Lect_第11章_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《JAVA课件2Lect_第11章》由会员分享,可在线阅读,更多相关《JAVA课件2Lect_第11章(129页珍藏版)》请在金锄头文库上搜索。

1、第十一章,图形用户界面设计,图形用户界面设计,11.1 AWT组件概述 11.2 布局管理 11.3 事件处理,11.1 AWT组件概述,早期的JDK版本中提供了Java抽象窗口工具集(Abstract Window Toolkit, AWT),其目的是为程序员创建图形用户界面提供支持。AWT组件定义在java.awt包中,包括组件类、组件布局类等 。,Java.awt的继承关系,1组件,组件(component)是构成图形用户界面的基本成分和核心元素。组件类(Component)是一个抽象类,是AWT组件类层次结构的根类,实际使用的组件都是Component类的子类。Component类提供

2、对组件操作的通用方法,包括设置组件位置、设置组件大小、设置组件字体、响应鼠标或键盘事件、组件重绘等。,2容器,容器(container)是一种特殊组件,它能容纳其他组件。它在可视区域内显示其它组件。容器是组件,在容器之中还可以放置其它容器,可以使用多层容器构成富于变化的界面。,3窗口与面板,容器有2种:窗口(window)和面板(panel)。 窗口可独立存在,可被移动,也可被最大化和最小化,有标题栏、边框,可添加菜单栏。 面板不能独立存在,必须包含在另一个容器中。 面板没有标题,没有边框,不可添加菜单栏。 一个窗口可以包含多个面板,一个面板也可以包含另一个面板,但面板不能包含窗口。 窗口类W

3、indow和面板类Panel都是容器类Container的子类。,4框架与对话框,窗口类Window主要有2个子类:框架类(Frame)和对话框类(Dialog)。,框架(Frame),框架(frame)是一种带标题栏并且可以改变大小的窗口。 应用程序中,使用框架作为容器,在框架中放置组件。 框架类在实例化时默认是最小化的、不可见的,必须通过setSize()方法设置框架大小,通过setVisible(true)方法使框架可见。,Frame的构造方法,Frame的成员方法,对话框(dialog),对话框(dialog)也是一种可移动的窗口,它比框架简单,没有太多的控制元素,如最大化按钮、状态栏

4、等。 对话框不能作为应用程序的主窗口,它依赖于一个框架窗口而存在,当框架窗口关闭时,对话框也关闭。 对话框类Dialog的构造方法必须声明对话框所依赖的框架窗口。,例-创建窗口,import java.awt.*; class FrmApp static Frame fra=new Frame(“FrmApp“); public static void main(String args) fra.setSize(250,150); fra.setLocation(100,200); fra.setVisible(true); System.out.println(“State:“+fra.ge

5、tState(); System.out.println(“Title:“+fra.getTitle(); System.out.println(“Visible:“+fra.isVisible(); ,程序运行时,出现如图所示的窗口,并在屏幕上显示如下所示的文本信息: State:0 Title:FrmApp Visible:true,5标签,标签类(Label)组件用于显示一行文本信息。标签只能显示信息,不能用于输入。,Label的构造方法,Label的成员方法,例-在窗口中建立1个标签,import java.awt.*; class LabApp public static void

6、main(String args) Frame fra=new Frame(“LabApp“); Label lab=new Label(); /创建1个空标签 fra.setSize(250,150); lab.setText(“This is a label“); /为标签添加标题 lab.setAlignment(Label.CENTER); lab.setBackground(Color.white); /引用Component类的方法设置标签背景颜色,lab.setForeground(Color.black); /引用Component类的方法设置标签标题颜色 Font fnt=n

7、ew Font(“Serief“, Font.ITALIC+Font.BOLD,22); lab.setFont(fnt); fra.add(lab); fra.setVisible(true); ,程序运行时,出现如图所示的窗口。,6按钮,按钮是最常见的一种组件,用来控制程序运行的方向。用户单击按钮时,计算机将执行一系列命令,完成一定的功能。 按钮通过java.awt包的Button类创建。,Button的构造方法,java.awt.Button的方法,例-在窗口中建立一个按钮,import java.awt.*; class Buttapp public static void main(

8、String args) Frame fra=new Frame(“ButtApp“); fra.setSize(250,170); fra.setLayout(null); /关闭页面设置 Button butt=new Button(“click“); butt.setSize(100,50); butt.setLocation(75,60); fra.add(butt); fra.setVisible(true); ,程序运行时,出现如图所示的窗口。,7文本编辑组件,文本编辑组件有文本行和文本区。 文本行是一个单行文本编辑框,用于输入一行文字。文本行由java.awt包中的TextFie

9、ld类来创建。,TextField的构造方法,TextField的成员方法,例-创建文本行,import java.awt.*; class TextApp public static void main(String args) Frame fra=new Frame(“文本框程序“); TextField txt1=new TextField(50); TextField txt2=new TextField(“Text Field“, 50); fra.setBounds(0,0,300,200); fra.setLayout(null); txt1.setBounds(50,50,13

10、0,20); /设置文本框的大小 txt2.setBounds(50,100,130,30); fra.add(txt1); fra.add(txt2); fra.setVisible(true); ,程序运行时,出现如图所示的窗口。,11.2 布局管理,Java提供了多种风格和特点的布局管理器,每一种布局管理器指定一种组件相对位置和大小布局。布局管理器是容器类所具有的特性,每种容器都有一种默认的布局管理器。,11.2 布局管理,在java.awt包中共提供了5个布局管理器类: FlowLayout BorderLayout CardLayout GridLayout GridBagLayou

11、t 每个类都是java.lang.Object类的子类。,11.2.1 BorderLayout类,BorderLayout(边布局)的布局策略是把容器内的空间划分为东、西、南、北、中5个区域,这5个区域分别用英文的East、West、South、North、Center表示。向容器中加入每个组件都要指明它放在容器的哪个区域。如果某个区域没有分配组件,则其他组件可以占据它的空间。,BorderLayout类的构造方法,例-应用BorderLayout布局,在窗口中加入5个按钮,采用BorderLayout布局。 import java.awt.*; class BorLay public st

12、atic void main(String args) Frame frm=new Frame(“BorderLayout“); BorderLayout layout=new BorderLayout(5,7); frm.setBounds(0,0,300,200); frm.setLayout(layout); Button butN,butS,butW,butE,butC; butN=new Button(“north button“); butS=new Button(“south button“);,butW=new Button(“west button“); butE=new B

13、utton(“east button“); butC=new Button(“center button“); frm.add(butN, BorderLayout.NORTH); frm.add(butS, BorderLayout.SOUTH); frm.add(butW, BorderLayout.WEST); frm.add(butE, BorderLayout.EAST); frm.add(butC, BorderLayout.CENTER); frm.setVisible(true); ,程序运行结果如图所示。,11.2.2 FlowLayout,FlowLayout(流式布局)的

14、布局策略提供按行布局组件方式,将组件按照加入的先后顺序从左向右排列,当一行排满之后转到下一行继续按照从左向右的顺序排列。组件保持自己的尺寸,一行能容纳的组件的数目随容器的宽度变化。,FlowLayout类的构造方法,例-使用FlowLayout布局,import java.awt.*; import javax.swing.*; public class FlowLay public static void main(String args) Frame frm=new Frame(“BorderLayout“); FlowLayout layout=new FlowLayout(); frm

15、.setBounds(0,0,200,200); frm.setLayout(layout); Button but1,but2; TextField txt1,txt2; but1=new Button(“button 1“); but2=new Button(“button 2“); txt1=new TextField(“text 1“,10); txt2=new TextField(“text 2“,10);,frm.add(but1); frm.add(but2); frm.add(txt1); frm.add(txt2); frm.setVisible(true); ,运行程序出现

16、如图所示的界面:,初始界面 增大窗口宽度后的界面,11.2.3 GridLayout,GridLayout(网格布局)管理器将容器划分为大小相等的若干行乘若干列的网格,组件按照从左到右、从上到下的的顺序依此放入各网格中。每个组件占满1格。组件大小随网格大小变化。如果组件数比网格数多,系统将自动增加网格数;如果组件数比网格数少,未用的网格区空闲。,GridLayout类的构造方法,例-使用GridLayout布局,import java.awt.*; public class GridLay public static void main(String args) Frame frm=new Frame(“GridLayout“); GridLayout layout=new Gri

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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