JAVA的事件处理(上)

一.动作事件(ActionEvent)
接口:

ActionListener

接口中只包含一个方法:

public void actionPerformed(ActionEvent e)

动作事件中用到的一些方法

getActionCommand() //用来获取触动动作事件的事件源命令符
getSource() //获取发生Action事件的事件源对象的引用

动作事件的两种使用方法:
1.直接给事件添加监听:

public class Jpan2 extends JFrame {

    public Jpan2() {
        super("as");
        setSize(200,200);
        setLayout(new FlowLayout());

        JButton jb=new JButton("as1");
        jb.addActionListener(new ActionListener() {
//给按钮添加监听
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println(arg0.getActionCommand());
                System.out.println(arg0.getSource());
            System.exit(0);

                jb.setText("zxc");

                });
            }

        });
        add(jb);
        setVisible(true);
    }

    public static void main(String[] args) {

        new Jpan2();
    }
    }

2.用ActionListener接口

public class Jpan2 extends JFrame implements ActionListener{

    public Jpan2() {
        super("as");
        setSize(200,200);
        setLayout(new FlowLayout());

        JButton jb=new JButton("as1");
        jb.addActionListener(this);
                add(jb);
        setVisible(true);
    }

    public static void main(String[] args) {

        new Jpan2();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        System.exit(0);
    }
}

二.焦点事件监听(FocusEvent)
组件获得焦点或失去焦点时(文本框里的光标)都会产生焦点事件,
接口:

FocusListener

接口中要实现的方法

public void focusGained(FocusEvent e)//获取焦点时会调用
public void focusLost(FocusEvent e)//失去焦点时调用

与动作事件相同焦点事件同样有两种实现方法,这里我只以第一种为例

public class Jpan3 extends JFrame{
public Jpan3() {
    super("dsacv");
    setSize(200,200);
    setLayout(new FlowLayout());
    JTextField jf=new JTextField("asd",5);
    JTextArea as=new JTextArea(5,5);
    as.addFocusListener(new FocusListener() {

        @Override
        public void focusGained(FocusEvent arg0) {
            // TODO Auto-generated method stub
            jf.setText("zxc");

        }

        @Override
        public void focusLost(FocusEvent arg0) {
            // TODO Auto-generated method stub
            jf.setText("qwe");
        }

    });
    add(as);
    add(jf);
    setVisible(true);
}

    public static void main(String[] args) {
        new Jpan3();
    }
}

三.键盘事件(KeyEvent)
按下或释放键盘时,会触发键盘事件
接口:

KeyListener

接口中要实现的方法:
“`
public void keyPressed(KeyEvent arg0)//按下键时调用
public void keyReleased(KeyEvent arg0)//松开键时调用
public void keyTyped(KeyEvent arg0)//敲击键时调用

键盘事件常用的方法

getKeyCode()//获取与此事件键相关联的整数keycode
getKeyText(int keycode )//获取描述此keycode的标签
getKeyChar()//获取与此事件键相关的字符
isControlDown()//是否按下了CTRL键
isAltDown()是否按下alt键
isShiftDown()是否按下shift键


与动作事件相同焦点事件同样有两种实现方法,这里我只以第一种为例

public class Jpan3 extends JFrame{
public Jpan3() {
super(“dsacv”);
setSize(200,200);
setLayout(new FlowLayout());
JTextField jf=new JTextField(“asd”,5);
JTextArea as=new JTextArea(5,5);
jf.addKeyListener(new KeyListener() {

    @Override
    public void keyPressed(KeyEvent arg0) {
        // TODO Auto-generated method stub
        if(arg0.getKeyChar()=='a') {
         as.append("q");

        System.out.println(arg0.getKeyCode());
        System.out.println(arg0.getKeyText(65));}
    }

    @Override
    public void keyReleased(KeyEvent arg0) {
        // TODO Auto-generated method stub

// as.append(“a”);
}

    @Override
    public void keyTyped(KeyEvent arg0) {
        // TODO Auto-generated method stub

// as.append(“z”);
}

});
add(as);
add(jf);
setVisible(true);

}

public static void main(String[] args) {
    new Jpan3();
}

}

“`

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值