JavaGUI事件监听机制超详细讲解

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

JavaGUI事件监听机制超详细讲解

头秃小程   2023-03-23 我要评论

1.一个事件模型中有上对象:事件源,事件以及监听程序

2.事件监听机制:

  • 事件源        事件发生的地方
  • 事件            要发生的事情
  • 事件处理     针对发生的事情做出的处理方案
  • 事件监听     把事件源和事件关联起来

使用步骤:

  • 新建一个组件(如 JButton)
  • 将该组件添加到相应的面板(如 JFrame)
  • 注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮) 
  • 定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)

示例1:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
public class AddActionListener {
    public static void main(String[] args) {
        JFrame jf = new JFrame("AddActionListener");
        jf.setLayout(new FlowLayout(FlowLayout.LEFT));
        jf.setBounds(400, 300, 400, 300);
        JTextArea area=new JTextArea(20,10);
        area.setLineWrap(true);
        JButton jb=new JButton("秃头");
        jb.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                area.setText("不要熬夜!");
            }
        });
        jf.add(area);
        jf.add(jb);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

示例2:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
public class AddActionListener {
    public static void main(String[] args) {
        JFrame jf = new JFrame("AddActionListener");
        jf.setLayout(new FlowLayout(FlowLayout.LEFT));
        jf.setBounds(400, 300, 400, 300);
        JTextArea area=new JTextArea(20,10);
        area.setLineWrap(true);
        JButton jb=new JButton("秃头");
        jb.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                area.append("不要熬夜!");
            }
        });
        jf.add(area);
        jf.add(jb);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

tips:ActionEvent是一个类,e是那个类的一个实例。你可以换e无论你喜欢什么,例如。event或object都可以

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们