第九章java图形程序设计入门

上传人:bao****ty 文档编号:118756087 上传时间:2019-12-24 格式:DOC 页数:44 大小:624.50KB
返回 下载 相关 举报
第九章java图形程序设计入门_第1页
第1页 / 共44页
第九章java图形程序设计入门_第2页
第2页 / 共44页
第九章java图形程序设计入门_第3页
第3页 / 共44页
第九章java图形程序设计入门_第4页
第4页 / 共44页
第九章java图形程序设计入门_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《第九章java图形程序设计入门》由会员分享,可在线阅读,更多相关《第九章java图形程序设计入门(44页珍藏版)》请在金锄头文库上搜索。

1、173第三篇 图形程序设计第8章 图形程序设计入门从软件体系结构上看,通常将软件分为3层,即客户层、逻辑层、数据层。其中,客户层软件的职责是提供数据输入/输出的图形界面。在Java语言中,图形界面是通过AWT类库和Swing类库来实现的。本章将介绍Java图形类库的应用。8.1 图形类库简介类库就是由多个类构成的库。实现图形界面时用到java系统的两组类库:l AWT类库。又称为重型类库,保存在java.awt包中。刚引入Java时,使用此类库实现图形界面。l Swing类库。又称为轻型类库,保存在javax.swing包中。随着Java2的发行,在实现图形界面时以Swing类库取代了AWT类

2、库。AWT类库和Swing类库构成的类层次结构如图8-1所示。图8-1 类层次结构图注意:(1)非J字母开头的类都属于AWT类库。(2)以J字母开头的类属于Swing类库。(3)在Swing类库中,只有JApplet、JFrame和Jdialog 3个类创建的对象是重型组件。图8-1是java类库的类层次结构图。根据类在界面设计方面的用途,我们把类分成3组,它们是:辅助类、重型组件类和轻型组件类。8.1.1 辅助类辅助类属于AWT类库。在界面设计时,辅助类的作用是绘图和设置容器组件的布局方式。常用的辅助类有Graphics、Color、Font、FontMetrics、LayoutManage

3、r。8.1.2 重型类库重型类库中的类创建的组件是重型组件。在界面设计时,重型组件主要用于创建用户界面元素。早期的图形用户界面设计都采用重型组件。重型组件又称为AWT组件。由AWT类库中的类(加上JApplet、JFrame和Jdialog 3个类及其子类)创建的对象称为重型组件,如Button、Label、Frame、Dialog等都是重型组件。1重型组件的特点重型组件的特点如下:l 重型组件依赖本地GUI资源。l 重型组件只适用于简单的GUI程序设计,不适用于复杂的GUI项目。l 重型组件易发生平台故障,不稳定,不灵活。2重型组件分类重型组件又分为容器组件和非容器组件两类。能包含其他组件的

4、组件称为容器组件;不能包含其他组件的组件称为非容器组件。例如,用Panel、Window、JFrame、JDialog、JApplet及其子类创建的组件是容器组件;用Button、Label及其子类创建的组件是非容器组件。3重型组件的类层次结构图重型组件的类层次结构图如图8-2所示。图8-2 重型组件类层次结构图8.1.3 轻型类库轻型类库中的类创建的组件是轻型组件(除JApplet、JFrame和Jdialog 3个类及其子类以外)。在界面设计时,轻型组件类主要用于创建用户界面元素。随着Java2的发行,图形设计时以轻型组件取代了重型组件。常用到的轻型组件由类JButton、JLabel、J

5、TextField、JTectArea、JConmboBox、JList、JRadioButton和Jmenu创建的。1轻型组件的特点轻型组件的特点如下:l 轻型组件不依赖本地GUI资源。l 轻型组件适用于复杂的GUI项目。l 轻型组件比重型组件更稳定、通用和灵活。2轻型组件分类轻型组件又分为容器组件和非容器组件两类。由于JComponent的父类是Container,因此所有轻型组件都有容器特征。注意:Swing组件不能取代AWT的全部组件,只能取代AWT的用户界面组件(Button、TextField、TextArea等)。在界面设计时,仍需继续使用辅助类(Graphics、Color、F

6、ont、FontMetrics、LayoutManager)。此外,Swing组件继续采用AWT组件的事件模型。8.2 容器(Container类)容器是一种特殊组件,它能容纳其他的组件。Java中有两种主要容器,即窗口(Window)和面板(Panel),它们都是容器类Container的子类对象。窗口是可以自由移动的、能独立存在的容器,它又可分为框架(Frame)和对话框(Dialog);面板与窗口类似,但不能独立存在,必须包含在另外一个容器中,如包含在Frame或Applet类及其子类创建的容器中。在图形界面设计中,常使用Frame、Applet及其子类对象作为容器来存放用户界面组件。应

7、用程序使用框架及其子类对象作为容器,即在Frame对象(或子类对象)上放置面板来控制图形界面的布局;小程序使用Panel类及其子类(Applet或Japplet的子类)创建的对象作为容器(Applet对象是一个能够嵌入浏览器运行的特殊容器)。8.2.1 框架(JFrame)JFrame是Window类的子类,是一种带标题框并且可以改变大小的窗口。框架类的许多方法是从其超类Window或更上层的类Container和Component继承过来的。下面介绍框架类的构造方法和常用方法。1JFrame中的常用方法 JFrame类本身定义了一些方法外,它还从它的父类链条中继承了一些方法。(1)JFram

8、e类本身定义的构造方法和实用方法l JFrame():创建一个无标题的窗口。 l JFrame(String title):创建一个标题为title的窗口。其中,参数title指定窗口的标题。没有参数时,则窗口无标题。窗口的默认布局是BorderLayout布局。l public void setTitle(String title):设置窗口的标题为title。l public String getTitle():获取窗口的标题。l public void setBackground(Color color):设置窗口的背景颜色为color。l public void setResizabl

9、e(boolean bol):设置窗口是否可调整大小,窗口默认是可调整大小的。bol的值是true时,表示可以调整窗口大小。l boolean isResizable():获取窗口是否可调整大小的信息,如果可调整窗口大小,该方法返回true,否则返回false。(2)从Component类中继承的方法l public void setLocation(int x,int y):设置窗口位置。调用该方法后,将窗口的左上角的坐标位置设置为(x,y)也就是距屏幕左面x像素,距屏幕上方y像素。l public void setBounds(int x,int y,int width,int heigh

10、t):设置窗口的大小和位置。调用该方法后,将窗口安排在屏幕上的一指定位置,即窗口左上角的坐标位置为(x,y)(也就是距屏幕左面x像素,距屏幕上方y像素);窗口的宽是width,高是height。l public void setSize(int width,int height):设置窗口的大小。这时窗口左上角坐标是(0,0)。l public void setVisible(boolean vis):设置窗口是否可见,窗口默认是不可见的。vis的值是true时,窗口是可见的。(3)从Container类中继承的方法l public Component add(Component comp):

11、在容器中添加一个组件comp。一个窗口中可以放置多个组件。l public void setLayout(LayoutManager mgr):将窗口的布局管理器设置为mgr。l public void validate():调用该方法,确保窗口中添加的组件能显示出来。显示窗口时,有可能看不到窗口中的组件,当用户调整窗口大小时才能看到这些组件。如果窗口调用了该方法,就不会发生这种情况。另外,当窗口调用方法setSize()或setBounds()调整窗口大小后,都应该调用方法validate()以确保当前窗口中添加的组件能显示出来。(4)从Window类中继承的方法l public void

12、dispose():调用该方法,将撤销当前窗口,并释放当前窗口所使用的资源。2创建框架(JFrame)下面的程序是创建一个带标题的窗口。【例8.1】创建并显示一个框架(框架是窗口的一种)。程序名:MyFrame.java【程序源代码】import javax.swing.*;public class MyFrame public static void main(String args) JFrame frame = new JFrame(我是窗口标题); /创建一个窗口 frame.setSize(300, 300); /设置窗口大小 frame.setVisible(true); /使窗口

13、可见 / JDK 1.3关闭窗口的语句格式如下: frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /当窗口产生关闭事件时,关闭窗口 在默认情况下,框架对象不可见,处于最小化状态(即框架的宽和高都是0)。必须通过setSize()方法设置框架的大小,通过setVisible(true)方法使框架变为可见。3框架居中默认情况下,框架在屏幕的左上角显示。要指定框架显示位置,必须使用JFrame类中的方法setLocation(x,y)将框架的左上角位置安排在(x,y)处。要把框架放在屏幕的中心位置,需要知道框架和屏幕的宽和高,以便计算出将框

14、架居中时框架左上角的坐标。可以通过java.awt.Toolkit类得到屏幕的宽和高。(1)获取屏幕的宽度和高度Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();int screenWidth = screenSize.width;/获取屏幕的宽度int screenHeight = screenSize.height;/获取屏幕的高度(2)框架居中时左上角的坐标(x,y)Dimension frameSize = frame.getSize();int x = (screenWidth - frameSize

15、.width)/2;int y = (screenHeight - frameSize.height)/2;【例8.2】创建一个框架并显示在屏幕中心。程序名:CenterFrame.java【程序源代码】import javax.swing.*;import java.awt.*;public class CenterFrame public static void main(String args) JFrame frame = new JFrame(框架居中); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /当窗口产生关闭事件时,关闭窗口 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();/获取屏幕的大小 int screenWidth = screenSize.width; int screenHeight = screenSize.heig

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

当前位置:首页 > 大杂烩/其它

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