可视化用户界面开发
图形界面开发API嘴常用的是:
1、 AWT 抽象窗口工具包
2、 JFC/Swing java基础类
组件为GUI程序的基本组成部分,而组件布局管理器则是构建GUI程序的粘合剂,理解好了组件管理器对构建一个漂亮美观的GUI程序帮助很大;
Q&A:
1、 容器组件渲染?
2、 事件中的适配器?监听器?
A2:AWT包中提供了事件处理机制;
简单说来,就是事件源产生一个event对象,并且传递event对象给事件监听者,事件监听者对收到的对象作出相应回应,主要是通过调用相应的事件处理程序,完成事件处理。
Java事件机制三个对象:
事件源、事件对象、事件监听者
事件源:产生事件的对象或组件,如按钮/文本框图形组件、计时器非图形对象;
事件源必须具备3功能:增加/去除监听者的方法;包含一个事件监听者的列表;包含产生并传递正确的事件对象类型给相应事件监听者的规则。
一个事件源可以产生多个不同的事件,下面是实现事件机制的框架:
public class mellonEventGenerator{
public void addMellonListener(MellonListener l)
{ 添加事件监听者列表}
Public void removeMellonListener(MellonListener)
{ 移除事件监听者 }
Private void notifyMellonListener()
{ //使用this作为参数创建MellonEvent实例
MellonEvent mellonEvent = new MellonEvent(this);
//传递事件给事件监听者,通知事件监听者执行目标操作
}
}
事件对象
所有的事件都是java.util.EventObject类的子类;继承此类就可构造自己的事件类;
事件监听者
事件源通知的事件的目标对象,必须从恰当的接口实现,所有的事件监听接口都继承自java.util.EventListener接口。
例如:
Public interface MellonListener extends java.util.EventListener
{
Public void handleMellonEvent(MellonEvent e);
}
我们实现此接口就可以得到一个事件监听者对象:
Public class MellonListenerTest implements MellonListener
{
System.out.println(“I receive the event MellonEvent”);
}
现在,事件监听者还不能监听到事件,我们还要到事件源中注册事件监听者:
MellonEventGenerator eventSource = new MellonEventGenerator();
MellonListenerTest listener = new MellonListenerTest();
eventSource. addMellonListener(listener);
如果结束对eventSource的监听,调用removeMellonListener方法即可。
事件类型:
所有定义在java.awt.event包中的事件可以分为两类,semantic和low-level。Semantic事件类型是多个low-level事件的组合结果。在java.awt.event包中,定义了ActionEvent、ItemEvent、TextEvent、AdjustmentEvent四种semantic事件,而FocusEvent、InputEvent、KeyEvent、MouseEvent等属于low-level事件。
使用swing组件
使用swing组件开发的程序至少拥有一个顶级容器,一般来说,应用程序都以JFrame作为用户界面层次起点,JDialog与JFrame平级的;而对Applet来说,JApplet便是用户界面层次起点。
使用中间容器
中间容器主要是在顶级容器和底层组件之间提供一个过渡容器状态。上面提到的Root pane便是一个中间容器类。Root pane一般不被直接实例化,通常是通过JFrame得到,通常是通过getContentPane方法得到一个内容面板,但是实际上,Root Pane包含四部分,Glass pane、Layered Pane、content pane、可选的menu bar,Layered Pane主要是用管理content pane、menu bar。