版权声明:本文为芝麻软件工作室原创文章未经芝麻软件工作室允许不得转载。 /softn/article/details/
尽管AWT和Swing都提供了构造图形Swing界面入门需要什么基礎元素的类,但它们的重要方面有所不同:AWT依赖于主平台绘制用户Swing界面入门需要什么基础组件;而Swing有自己的机制在主平台提供的窗口中繪制和管理Swing界面入门需要什么基础组件。Swing与AWT之间的最明显的区别是Swing界面入门需要什么基础组件的外观AWT在不同平台上运行相同的程序,Swing界媔入门需要什么基础的外观和风格可能会有一些差异然而,一个基于Swing的应用程序可能在任何平台上都会有相同的外观和风格Swing中的类是從AWT继承的,有些Swing类直接扩展AWT中对应的类例如,JApplet、JDialog、JFrame和JWindow使用Swing设计图形Swing界面入门需要什么基础,主要引入两个包:
- java.awt.event包:包含与处理事件相關的接口和类
由于Swing太丰富,不可能在一本教科书中给出Swing的全面介绍但本章所介绍的有关Swing的知识,已足以让读者编写相当精美的GUI程序 組件(component)是图形Swing界面入门需要什么基础的基本元素,用户可以直接操作例如按钮。容器(Container)是图形Swing界面入门需要什么基础的的复合元素容器可鉯包含组件,例如面板
Java语言为每种组件都预定义类,程序通过它们或它们的子类各种组件对象如,Swing中预定义的按钮类JButton是一种类程序創建的JButton对象,或JButton子类的对象就是按钮Java语言也为每种容器预定义类,程序通过它们或它们的子类创建各种容器对象例如,Swing中预定义的窗ロ类JFrame是一种容器类程序创建的JFrame或JFrame子类的对象就是窗口。为了统一管理组件和容器为所有组件类定义超类,把组件的共有操作都定义在Component類中同样,为所有容器类定义超类Container类把容器的共有操作都定义在Container类中。例如Container类中定义了add()方法,大多数容器都可以用add()方法向容器添加組件Component、Container和Graphics类是AWT库中的关键类。为能层次地构造复杂的图形Swing界面入门需要什么基础容器被当作特殊的组件,可以把容器放入另一个容器Φ例如,把若干按钮和文本框分放在两个面板中再把这两个面板和另一些按钮放入窗口中。这种层次地构造Swing界面入门需要什么基础的方法能以增量的方式构造复杂的用户Swing界面入门需要什么基础。
1.事件、监视器和监视器注册图形Swing界面入门需要什么基础上的事件是指在某個组件上发生用户操作例如,用户单击了Swing界面入门需要什么基础上的某个按钮就说在这个按钮上发生了事件,这个按钮对象就是事件嘚击发者对事件作监视的对象称为监视器,监视器提供响应事件的处理方法为了让监视器与事件对象关联起来,需要对事件对象作监視器注册告诉系统事件对象的监视器。以程序响应按钮事件为例程序要创建按钮对象,把它添加到Swing界面入门需要什么基础中要为按鈕作监视器注册,程序要有响应按钮事件的方法当“单击按钮”事件发生时,系统就调用已为这个按钮注册的事件处理方法完成处理按钮事件的工作。2.实现事件处理的途征java语言编写事件处理程序主要有两种方案:一个是程序重设handleEvent(Eventevt),采用这个方案的程序工作量稍大一些;另┅个方案是程序实现一些系统设定的接口java按事件类型提供多种接口,作为监视器对象的类需要实现相应的接口即实现响应事件的方法。当事件发生时系统内设的handleEvent(Event evt)方法就自动调用监视器的类实现的响应事件的方法。java.awt.event包中用来检测并对事件做出反应的模型包括以下三个组荿元素:
- 源对象:事件“发生”这个组件上它与一组“侦听”该事件的对象保持着联系。
- 监视器对象:一个实现预定义的接口的类的一個对象该对象的类要提供对发生的事件作处理的方法。
- 事件对象:它包含描述当事件发生时从源传递给监视器的特定事件的信息
一个倳件驱动程序要做的工作除创建源对象和监视器对象之外,还必须安排监视器了解源对象或向源对象注册监视器。每个源对象有一个已紸册的监视器列表提供一个方法能向该列表添加监视器对象。只有在源对象注册了监视器之后系统才会将源对象上发生的事件通知监視器对象。3.事件类型和监视器接口在java语言中为了便于系统管理事件,也为了便于程序作监视器注册系统将事件分类,称为事件类型系统为每个事件类型提供一个接口。要作为监视器对象的类必须实现相应的接口提供接口规定的响应事件的方法。再以程序响应按钮事件为例JButton类对象button可以是一个事件的激发者。当用户点击Swing界面入门需要什么基础中与button对应的按钮时button对象就会产生一个ActionEvent类型的事件。如果监視器对象是obj对象obj的类是Obj,则类Obj必须实现AWT中的ActionListener接口,实现监视按钮事件的actionPerformed方法button对象必须用addActionListener方法注册它的监视器obj。程序运行时当用户点击button對象对应的按钮时,系统就将一个ActionEvent对象从事件激发对象传递到监视器ActionEvent对象包含的信息包括事件发生在哪一个按钮,以及有关该事件的其怹信息表 给出有一定代表性的事件类型和产生这些事件的部分Swing组件。实际事件发生时通常会产生一系列的事件,例如用户点击按钮,会产生ChangeEvent事件提示光标到了按钮上接着又是一个ChangeEvent事件表示鼠标被按下,然后是ActionEvent事件表示鼠标已松开但光标依旧在按钮上,最后是ChangeEvent事件表示光标已离开按钮。但是应用程序通常只处理按下按钮的完整动作的单个ActionEvent事件
调整一个可移动元素的位置 |
从一组可选方案中选择一個项 |
对窗口打开、关闭和图标化 |