JAVA—图形用户界面基础

JAVA—图形用户界面基础

一.swing和AWT

我们先来简单地了解一下swing和AWT

在JAVA中,将图形用户界面相关的类捆绑在一起,放在一个称为抽象窗口工具箱(Abstract Window Toolkit,AWT)的库中。AWT适合开发简单的图形用户界面,但并不适合开发复杂的GU项目,除此之外,AWT更容易发生与特定平台相关的故障。AWT的用户界面组件就被一种更稳定、更通用和更灵活的库取代,这种库称为Swing组件(Swing component)库。

大多数Swing组件都是直接用Java代码在画布上绘图的,而java.awt.Window或java. awt.Pane1的子类的组件例外,它们必须使用特定平台上自己的GUI来绘图。Swing组件更少地依赖于目标平台并且更少地使用自己的GUI资源。因此,不依赖于自己GUI的Swing组件称为轻量级组件(lightweight component),而AWT组件称为重量级组件( heavyweight component)。

为了区别新的Swing组件类和与它对应的AWT组件类,SwingGUI组件类都以字母J为前缀来命名。尽管在Java中仍然支持AWT组件,但是最好学习如何使用Swing组件编程,因为AWT用户界面组件终究是要退出历史舞台的。

二.Java GUI API

GUI API包含的类可以分成三个组:组件类(component class)、容器类(container class)和辅助类(helper class)。层次结构如下:

在这里插入图片描述
组件类 java.awt.Component
Component类的实例可以显示在屏幕上,Component类是包含容器类的所有用户界面的根类

容器类
一个Container的实例可以包含Component实例。容器类是用于盛装其他GUI组件的GUI组件。
Frame,Panel,Dialog,Applet和Windows都是AWT组件的容器类
JFrame,JPanel,JDialog,JApplet,Container和都是Swing组件的容器类

容器类说明
java. awt. Container用于对组件分组。框架Frame、面板Panel和applet都是它的子类
javax. swing .JFrame一个不能包含 在另一个窗口中的窗口。在Java GUI应用程序中,它用于存放其他Swing用户界面组件
java. swing .JPanel一个存放用户界面组件的不可见的容器。面板可以嵌套。可以将面板放在包含面板的容器中。JPanel也可用作画图的画布
java. swing .JAppletApplet的一个子类。必须扩展JApplet才能创建基于Swing的Javaapplet
java. swing.JDialog一个弹出式窗口或消息框,一 般用作接收来自用户的附加信息或通知事件发生的临时窗口

辅助类
辅助类都不是Component的子类,例如,Graphics、color。 Font、FontMetrics、Dimension和LayoutManager等。它们用来描述GU组件的属性,例如,图形的内容、颜色、字体以及大小尺寸等

辅助类说明
java. awt . Graphics一个抽象类,提供绘制字符串、线和简单几何图形的方法
java. awt. Color处理GUI组件的颜色。例如,可以在像JFrame和JPanel这样的组件中指定背景色或前景色,或者指定绘制的线条、几何图形和字符串的颜色
java. awt. Font指定GUI组件.上文本和图形的字体。例如,可以指定按钮上文本的字型(例如,SansSerif)、 风格(例如,粗体)以及大小(例如,24号)
java. awt. FontMetrics一个获取字体属性的抽象类
java . awt . Dimension将组件的宽度和高度(以整数为精度)封装在单个对象中
java. awt.LayoutManager指定组件在容器中如何放置

ps:辅助类是在包java.awt中的。Swing组件不能取代AWT中的全部类,只能替代AWTGUI的组件类(例如, Button, TextField、 TextArea)。 AWT辅助类在GUI程序设计中仍然很有用。

用AWT来生成图形化用户界面时,组件和容器的概念非常重要。组件是各种各样的类,封装了图形系统的许多最小单位,例如按钮、窗口等等;而容器也是组件,它的最主要的作用是装载其它组件,但是象Panel这样的容器也经常被当作组件添加到其它容器中,以便完成杂的界面设计。布局管理器是java语言与其它编程语言在图形系统方面较为显著的区别,容器中各个组件的位置是由布局管理器来决定的,共有5种布局管理器,每种布局管理器都有自己的放置规律。事件处理机制能够让图形界面响应用户的操作,主要涉及到事件源、事件、事件处理者等三方,事件源就是图形界面上的组件,事件就是对用户操作的描述,而事件处理者是处理事件的类。因此,对于AWT中所提供的各个组件,我们都需要了解该组件经常发生的事件以及处理该事件的相应的监听器接口。 对于AWT而言,Java 1.1到Java 1.2最大的改变就是Java中所有的库。当Java 1.1版纳入新的事件模型和Java Beans时,平台被设置--现在它可以被拖放到可视化的应用程序构建工具中,创建GUI组件。另外,事件模型的设计和Bean无疑对轻松的编程和可维护的代码都非常有益。对于Swing组件而言,交叉平台GUI编程可以变成一种有意义的尝试。 本章主要介绍了一些Swing的新特性,它和AWT相比有哪些不同的方法和应用,着重阐述了Swing的特色组件和容器,并以图形的形式给出具体描述,同时介绍了组件的分类,使用Swing的基本规则,各种容器面板以及布局管理器,由于Swing是Java2新增特性, 它对图形化用户界面提供了庞大而复杂的类库支持,要能做到开发和实用,还需做大量工作,利用API的帮助,逐步深入摸索其规律,从组件和容器入手,掌握其特色方法。从另一角度来看,Swing和AWT无论是布局管理器还是事件处理机制,以及对一些重量容器的保留和使用,都是我们非常熟悉的内容,其原理我们已在AWT一章做了详细介绍,因此,AWT作为Swing的基础,是需要很好掌握的,希望大家能在不断设计应用中摸索出新方法和新技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值