初识GUI
日常的控制台显示几句话或一串数字,表示已经看厌倦。目前所学内容完全不能满足个人需求,为了能有个看起来不错的界面,开始学习GUI编程,冲冲冲!!!
定义:图形用户界面(Graphical User Interface,GUI),顾名思义以图形的方式显示计算机操作用户的界面。
特征:
- 图形界面对象机器框架(图形界面对象之间的包含关系)
- 图形界面对象的布局(图形界面对象之间的位置关系)
- 图形界面对象上的事件响应(图形界面对象上的动作)
Java中可用的技术:AWT、Swing。
1、AWT简介
AWT(Abstract Windowing Toolkit)抽象窗口工具包,是Sun公司在发布JDK1.0时一个重要的组成部分,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT中的所用工具类都保存在java.awt包中,此包中的所有操作类可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(Components)。
在整个AWT包中提供的所有工具类主要分为三种:
- 组件:Component
- 容器:Container
- 布局:LayoutManager
AWT包整体结构:
1.1、组件
在图形界面中用户常会看到一个个按钮、标签、菜单等,实际上,就是一个个组件。这些组件在一个窗体上显示,如图。
在整个AWT包中所有的组件类(如按钮、文本框)都是从Component和MenuComponent扩展而来的,这些类会继承者两个类的公共操作,继承关系如下图。
在Swing中的所有组件类实际上也都是Component的子类,与AWT不同的是,所有组件前都加上字母J
,如JButton、JLabel
等。
1.2、容器
所有的AWT组件都应该放到容器中,并可以设置其位置、大小等,所有的容器都是Component的子类,在AWT中包含以下几种容器。
1.3、布局管理器
使用布局管理器可以使容器中的组件按照指定的位置进行摆放,另外一个好处是,即使容器改变大小,布局管理器也可以准确地把组件放到指定的位置,这样就可以有效地保证版面不会混乱。在AWT中的所有布局管理器都是LayoutManager的子类。常用的布局管理器继承关系如下:
Swing自述
诞生
我的出生纯属一个意外!!!因为AWT大量的引用了Windows函数,在原生的用户界面之上仅提供了一个非常薄的抽象层。所以一个AWT应用可能在Windows上表现很好可是到了MacOS平台或者各种UNIX平台上几乎不能使用,或者正好相反。为了解决这一问题,在Java2中便提供了轻量级的图形界面组件——Swing,Swing是我们家族的名字,我的出生后很大程度上替代了AWT包,使AWT原本并不富裕的生活更是雪上加霜。
Swing简介
在我们Java世界中我们Swing家族都住在javax.swing包中,从包的名称中(javax)可以清楚的发现这个包是一个扩展包所有的组件都是由JComponent扩展出来的,下面是我的族谱(继承关系)。
在Swing中依旧可以使用AWT中提供的各种布局管理器,为组件统一布局管理。
总结
- 在Java中图形界面开发主要使用AWT、Swing两种技术,AWT为重量级、Swing为轻量级。
- 欲戴皇冠,必承其重。整一些花里胡哨的东西,必然要学的东西就更多,要学的好,就要费力气,加油!!!冲冲冲!!!