Java学习笔记(四、图形界面设计)

来源:互联网 发布:中科院遥感地球所知乎 编辑:程序博客网 时间:2024/06/05 21:02

5.1图形界面设计基础
5.1.1AWT和Swing
    Swing可以看做是AWT的改良版,是对AWT的提高和扩展。
    尽管AWT和Swing头提供了构造图形界面元素的类,但它们的重要方面不同:AWT依赖于主平台绘制用户界面组件;而Swing有自己的机制,在主平台提供窗口中绘制和管理界面组件。
    Swing和AWT的明显区别是界面组件的外观,AWT在不同平台上运行相同的程序,界面的外观和风格可能会有一些差异。然而,一个基于Swing的应用程序可能在任何平台上都会有相同的外观和风格。
    Swing中的类是从AWT继承的。
5.1.2组件和容器
    组件是图形界面的基本元素,例如按钮。容器是图形界面的符合元素,容器可以包含组件,例如面板。
    为了统一管理组件和容器,为所有组件类定义超类Component类,把组件的共有操作都定义在Component类中。同样,为所有容器定义超类Container类。
    为能层次地构造复杂的图形界面,容器被当做特殊的组件,可以把容器放入另一个容器中。
5.1.3 事件驱动程序设计基础
重要概念
1、事件、监视器和监视器注册
    图形界面上的事件指在某个组件上发生的用户操作。例如,用户单击了界面上的某个按钮,就说在这个按钮上发生了事件。对事件做监视的对象称为监视器,监视器提供响应事件的处理方法。为了让监视器与事件对象关联起来,需要对事件对象做监视器注册,告诉系统时间对象的监视器。
    例如,程序要创建按钮对象,把它添加到界面中,要为按钮作监视器注册,程序要有响应按钮事件的方法。当"单击按钮"事件发生时,系统就调用已为这个按钮注册的事件处理方法,完成处理按钮事件的工作。
2、实现事件处理的途径
    java语言编写事件处理程序主要有两种方案:一个是程序重设方法handleEvent(Event),采用这个方案的程序工作量稍大。另一个是程序实现一些系统设定的接口。java按事件类型提供多种接口,作为监视器对象的类需要实现相应的接口,即实现响应事件的方法。当事件发生时,系统内设的handleEvent(Event evt)方法就自动调用监视器的类实现的响应事件的方法。
    java.awt.event包中用来检测并对事件做出反应的模型包括以下三个组成元素:
(1)源对象:事件发生在这个组件上,它与一组侦听该事件的对象保持着联系。
(2)监视器对象:是一个实现预定义的接口的类的一个对象,该对象的类要提供对发生的事件作处理的方法。
(3)事件对象:包含描述当事件发生时从源传递给监视器的特定事件的信息。
3、事件类型和监视器接口
    在java语言中,为了便于系统管理事件,也为了便于程序作监视器注册,系统将事件分类,称为事件类型。系统为每个事件类型都提供一个接口。要作为监视器对象的类必须实现相应的接口。
    例如,JButton类的对象button可以是一个事件的激发者。当用户点击button时,button对象就会产生一个ActionEvent类型的事件。如果监视器对象是obj,obj的类是Obj,那么类Obj比粗实现AWT的ActionListener接口,实现监视按钮事件的actionPerformed方法。button对象必须用addActionListener方法注册它的监视器对象obj。
    程序运行时,当用户点击button时,系统就将一个ActionEvent对象从事件激发对象传递到监视器。ActionEvent对象包含的信息包括事件发生在哪一个按钮,以及有关该事件的其他信息。
5.2框架窗口
    小应用程序或图形界面的应用程序的可视组件都放在窗口中。有以下三种窗口:
(1)Applet窗口,Applet类管理这个窗口,当小应用程序启动时,由系统创建和处理。
(2)框架窗口(JFrame),这是通常意义上的窗口,支持窗口周边的框架、标题栏,以及最大化、最小化和关闭按钮。
(3)一种无边框窗口,没有标题栏,没有框架,只是一个空的矩形。
用Swing中的JFrame类或子类创建JFrame窗口。

 

原创粉丝点击