简述Java中,GUI的事件驱动模式

放弃了继续《猜猜看》的代码研究,因为我真的连自己不懂在哪里都不清楚。然后我随便上网了解了老师之前提过的问题,一是简述Java中,GUI的事件驱动模式。(我还是不了解)

图形用户界面GUI
1、基本组成:
a、提供最基本的GUI控件,如按钮、标签、文本字段等
b、将基本GUI控件组织为包容层次的容器组件,如顶层容器,中间容器等
c、负责管理容器中的组件布局的组件,如边界布局管理器、流布局管理器
d、事件传播与处理模式,如事件处理模式、各种事件监听器等
e、其他高级特征
2、一个简单的GUI程序:
import javax.swing.*;
public class Te {
public static viod main (String[] args) {
JFrame frame =new JFrame("welcome to GUI'world");
frame.getContentPane().add(
new JLabel("java'CUI Program“));
frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);}}
3、事件:
定义:一个携带信息的对象。标识事件的种类以及产生事件的事件源。需要由相应的监听器接受并处理
语义:类java.util.EventObject描述了所有事件的基本语义。
事件处理代码在一个单独线程(event-dispatching thread)中执行
4、事件处理程序的实现:
a、声明事处理件类时,要么指定一个监听接口,要么继承一个实现看监听器接口的类
如:piblic class Te inplements ActionListener{……}
b、将事件处理类的实现注册到一个或多个组件作为监听器
如:someCompinent.addActionListener(instanceOfTe);
c、实现监听器接口指定的方法
如:public void actionPerformed(ActionEvent evt)
5、
方法一:实现MouseListener接口
方法二:继承MouseListener类
方法三:使用匿名内部类
6、GUI组件(component):JPanel(面板)、JFrame(画框)、JLabel(标签)、JButton(按钮)
7、Swing组件分类:
顶层容器:为其他GUI组件的绘制提供位置
中间容器:仅是为了方便定位其他GUI组件
原子组件(atomic component):为了容纳其他GUI组件
8、Applet应用框架必须继承Applet或Applet类
9、网搜总结:http://jinnianshilongnian.iteye.com/blog/1902886
a、其所有组件都继承自java.awt.Component抽象类,其内部提供了addXXXListener(XXXListener l) 注册监听器的方法,即Component与实际动作之间依赖于XXXListener抽象。
b、Java Swing中处理各组件事件的一般步骤是: 


1.  新建一个组件(如JButton)。 


2.  将该组件添加到相应的面板(如JPanel)。 


3.  注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。 


4.  定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。 


以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。
 
比如获取焦点事件,很多组件都可以有这个事件,是我们知道组件获取到焦点后需要一个处理,虽然每个组件如何处理是特定的(具体的),但我们可以抽象一个FocusListener,让所有具体实现它然后提供具体动作,这样组件只需依赖于FocusListener抽象,而不是具体。
 
还有如java.awt.Button,提供了一个addActionListener(ActionListener l),用于注册点击后触发的ActionListener实现。
 
组件是一个抽象类,其好处主要是复用,比如复用这些监听器的触发及管理等。

你可能感兴趣的:(简述Java中,GUI的事件驱动模式)