java图形用户界面设计教程

java图形用户界面设计教程


2024年5月16日发(作者:)

第4章 图形用户界面设计

本章要点

 Java图形用户界面设计的基本知识

 布局管理器的应用

 Java常用图形用界面设计组件的应用

 Java常用组件事件处理的应用

4.1 认识AWT包和Swing包

用户界面是计算机用户与软件之间的交互接口。一个功能完善,使用方便的用户界面可

以使软件的操作更加简单,使用户与程序之间的交互更加有效。因此图形用户界面(graphics

user interface,GUI)的设计和开发已经成为软件开发中的一项重要的工作。

Java语言提供的开发图形用户界面(GUI)的功能包括AWT(Abstract Window Toolkit)

和Swing两部分。这两部分功能由Java的两个包来完成-awt和swing。虽然这两个包都是

用于图形用户界面的开发,但是它们不是同时被开发出来了。awt包是最早被开发出来的。

但是使用awt包开发出来的图形用户界面并不完美,在使用上非常的不灵活。比如awt包所

包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。这种设计是

站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。这样做的

最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。

由于awt包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开

发出了Swing,即swing包。但是,SUN公司并没有让swing包完成替代awt包,而是让这

两个包共同存在,互取所需。awt包虽然存在缺点,但是仍然有可用之处,比如在图形用户

界面中用到的布局管理器、事件处理等依然采用的是awt包的内容。

Java有两个主要类库分别是Java包和Javax包。在Java包中存放的是Java语言的核心

包。Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。

swing包由于是对awt包的扩展和优化,所以是存放在Javax包下的,而awt包是存放

在Java包下的。虽然swing是扩展包,但是,现在的图形用户界面基本都是基于swing包

开发的。

swing包的组件大部分是采用纯Java语言进行开发的,这就大大增加了组件的可操作性,

尤其是组件的外观。通常情况下,只要通过改变所传递的参数的值,就可以改变组件的外观。

而且swing包还提供Look and Feel功能,通过此功能可以动态改变外观。Swing包中也有一

些组件不是用纯Java语言编写的,这些组件一般用于直接和操作系统进行交互的。

4.2 布局管理器

在本节中将对图形用户界面中的布局管理器进行介绍。

【任务

1

】认识图形用户界面。

1.

基础知识

先来看一个用Java语言编写的图形用户界面的例子,如图4-1所示。

图4-1 一个图形用户界面

图4-1是一个帮助文件的用户界面。通过这个界面,我们来介绍三个与图形用户界面有

关的术语。

(1) 组件:构成图形用户界面的各种元素称为组件。图4-1中,放在“帮助窗口”中的

每个一信息都是一个组件。例如“确定”按钮就是一种组件。

(2) 容器:是图形用户界面中容纳组件的部分,一个容器可容纳一个或多个组件,甚至

可以容纳其他容器。窗口就是一种容器。例如图4-1中的组件全部都是放在“帮助窗口”这

个容器中的。容器与组件的的关系就像杯子和水的关系。需要说明的是,容器也可以被称为

组件。

(3) 布局管理器:组件在被放到容器中时,要遵循一定的布局方式。在Java的图形用户

界面中,有专门的类来管理组件的布局,称这些类为布局管理器。在“帮助窗口”中每一条

信息都是一个组件,这些组件应该如何安排就是由布局管理器负责的。所谓的布局管理器,

实际上就是能够对组件进行布局管理的类。

用吃饭的例子就能很好的说明这三个术语之间的关系。容器就是吃饭的桌子,组件就是

一盘盘的菜。我们放菜的时候总要安排一下哪个菜应该放在什么位置,这就是布局管理器。

2.

任务实施

本任务的代码内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import .*;

import .*;

public class FrameEx

{

public void go()

{

JFrame win = new JFrame("帮助窗口");

Container contentPane = tentPane();

out(new GridLayout(5,1));

JLabel labOne = new JLabel("计算机基础模拟练习系统的1.0",);

JLabel labTwo = new JLabel("北京信息职业技术学院",);

JLabel labThree = new JLabel("软件工程系制作",);

JLabel labFour = new JLabel("(c)版权所有2010年6月",);

JButton queding = new JButton("确定");


发布者:admin,转转请注明出处:http://www.yc00.com/web/1715816752a2676124.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信