用户对组件的一个操作,称为一个事件Event,如点击一下按钮的操作。
产生事件的组件叫事件源Event Source ,如被点击的按钮就是事件源。
对产生事件的组件进行监听,称为事件监听器,如监听按钮有没有产生事件。
对事件监听器监听到的事件进行处理。称为事件处理Event Handle。
事件处理机制的流程:
1)注册事件源(组件)的事件监听器;
2)用户操作事件源(组件)产生事件;
3)事件被注册的监听器监听到;
4)监听器对事件进行处理。
//设置点击关闭按钮时退出窗体,而不是默认的隐藏。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
当用同一个监听器监听多个组件时,我们需要知道监听的是哪个对象。
对此,我们可以使用ActionEvent类的getSource()方法获得一个Object对象,
再将Object对象强转成我们需要的对象类型。这样我们就获得了事件源对象。
事件适配器
自定义一个事件监听器必须实现一个监听器接口,那么就意味着该接口的所有抽象方法都必须
在自定义的监听器类中被实现。但如果一个监听器接口中有多个抽象方法,而其中一些抽象方法
并不是我们所关注的,我们也不得不去实现他。这导致我们编写一些冗余的代码,降低开发效率。
这时,我们可以采用继承事件适配器的方式来避免这个问题。
事件适配器的原理很简单,它是一个类,这个类用空方法实现了监听器接口中所有的抽象方法。
我们只需要继承事件适配器,重写我们关注的方法即可。
JButton
JRadioButton
JCheckBox
JComboBox
用户行为 事件源 触发的事件类型
点击按钮 JButton ActionEvent
在文本框中回车 JTextField ActionEvent
选中一个新条目 JComboBox ItemEvent,ActionEvent
选中条目 JList ListSelectionEvent
点击检查框 JCheckBox ItemEvent,ActionEvent
点击单选按钮 JRadioButton ItemEvent,ActionEvent
选中菜单栏 JMenuItem ActionEvent
移动滚动条 JScrollBar AdjustmentEvent
移动滚动条 JSlider ChangeEvent
窗口打开关闭等 Window WindowEvent
鼠标按下释放点击等 Component MouseEvent
移动或拖拽 Component MouseEvent
键按下或者释放 Component KeyEvent
组件添加到容器或删除 Component ContainerEvent
组件移动恢复或隐藏或显示Component ComponentEvent
组件获得或失去焦点 Component FocusEvent
特别注:Swing的默认界面的添加方法,在main函数里加入JFrame.setDefaultLookAndFeelDecorated(true);
产生事件的组件叫事件源Event Source ,如被点击的按钮就是事件源。
对产生事件的组件进行监听,称为事件监听器,如监听按钮有没有产生事件。
对事件监听器监听到的事件进行处理。称为事件处理Event Handle。
事件处理机制的流程:
1)注册事件源(组件)的事件监听器;
2)用户操作事件源(组件)产生事件;
3)事件被注册的监听器监听到;
4)监听器对事件进行处理。
//设置点击关闭按钮时退出窗体,而不是默认的隐藏。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
当用同一个监听器监听多个组件时,我们需要知道监听的是哪个对象。
对此,我们可以使用ActionEvent类的getSource()方法获得一个Object对象,
再将Object对象强转成我们需要的对象类型。这样我们就获得了事件源对象。
事件适配器
自定义一个事件监听器必须实现一个监听器接口,那么就意味着该接口的所有抽象方法都必须
在自定义的监听器类中被实现。但如果一个监听器接口中有多个抽象方法,而其中一些抽象方法
并不是我们所关注的,我们也不得不去实现他。这导致我们编写一些冗余的代码,降低开发效率。
这时,我们可以采用继承事件适配器的方式来避免这个问题。
事件适配器的原理很简单,它是一个类,这个类用空方法实现了监听器接口中所有的抽象方法。
我们只需要继承事件适配器,重写我们关注的方法即可。
JButton
JRadioButton
JCheckBox
JComboBox
用户行为 事件源 触发的事件类型
点击按钮 JButton ActionEvent
在文本框中回车 JTextField ActionEvent
选中一个新条目 JComboBox ItemEvent,ActionEvent
选中条目 JList ListSelectionEvent
点击检查框 JCheckBox ItemEvent,ActionEvent
点击单选按钮 JRadioButton ItemEvent,ActionEvent
选中菜单栏 JMenuItem ActionEvent
移动滚动条 JScrollBar AdjustmentEvent
移动滚动条 JSlider ChangeEvent
窗口打开关闭等 Window WindowEvent
鼠标按下释放点击等 Component MouseEvent
移动或拖拽 Component MouseEvent
键按下或者释放 Component KeyEvent
组件添加到容器或删除 Component ContainerEvent
组件移动恢复或隐藏或显示Component ComponentEvent
组件获得或失去焦点 Component FocusEvent
特别注:Swing的默认界面的添加方法,在main函数里加入JFrame.setDefaultLookAndFeelDecorated(true);