Swing的事件驱动机制

用户对组件的一个操作,称为一个事件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);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值