事件源有一些像其注册事件监听器的方法,当某个事件源产生事件时,事件源会向为事件注册的所有事件监听器对象发送一个通告;
事件源 ——————》事件监听器;
在java中,所有的事件对象都最终派生于 java.util.EventObject
AWT 事件处理的概要:
1、监听器对象是一个实现了特定监听器接口的类的实例;
2、事件源是一个能够注册监听器对象并发送事件对象的对象;例如按钮是事件源(点击按钮触发事件,监听器监测到做出反应)
3、当事件发生时,事件源将事件对象传递给所有注册的监听器;
4、监听器对象将利用事件对象中的信息决定如何对事件做出反应;
package action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Action {
public static void main(String[] args) {
//事件的监听器
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("哈哈哈");
}
};
JButton button = new JButton("Ok");//事件源
button.addActionListener(listener);//事件源注册监听器
}
}
为了实现ActionListener 接口,监听器类必须有一个被称为actionPerformed的方法,该方法接收一个ActionEvent 对象的参数(该参数包含了事件发生时的相关信息);
只要用户点击按钮,JButton 对象就会创建一个ActionEvent 对象,然后调用 listener.actionPerformed(event) 传递事件对象。可以将多个监听器对象添加到一个事件源中,这样,一旦点击按钮,就会调用所有监听器;
1、JButton:事件源,也就是按钮;Button 与 JButton的外观区别;
2、JPanel :面板容器,默认的布局为 “流布局管理器” 如上图所示,如果多个按钮将依次排开,居中;
3、JFrame :框架(外框,JFrame extends Frame),默认布局管理器 “边框布局管理器”;
4、网格布局管理器(GridLayout):按行列排列所有组件,不过它的每个单元格大小都是一样的,当窗口缩放时,所有按钮的大小将跟着变化,但所有按钮的尺寸却保持一致;
5、卡片布局管理器(CardLayout):打开我们的eclipse多打开几个页面,这就是卡片布局了;
6、网格包布局管理器(GridBagLayout):非规则的矩阵
7、文本输入:
JTextField ——》文本域,只能输入一行字;
JTextArea ——》文本区域;
JPassword ——》接收单行文本,不过输入内容不会显示出来;
这三个类都继承于JTextComponent
7.1、单行文本输入(JTextField):
7.2、标签和标签组件(JLabel):
7.3、密码域(JPasswordField):
7.4、文本区(JTextArea):
8、选择组件:
8.1、复选框(JCheckBox):
8.2、单选框(按钮组(ButtonGroup)和 JRadioButton):
将 JRadioButton 对象添加到按钮组ButtonGroup中
8.3、创建边框:
8.4、组合框(JComboBox):
8.5、滑块(JSlider):
9、菜单创建
应该为每一个菜单项建立一个监听;