事件和监听器的使用

1 .事件其实无处不在,每个人不管是在干什么,都是事件,在类里面就是对象的行为就是事件,按钮的触发,窗体的点击、关闭,等等
2 .监听器顾名思义就是来监听别人的一举一动的,当然在类里面它就是来监听与对象相对应的动作事件的,监听器记录指定对象的任何异动,但达到某一条件时就会触发事件,这个事件的发生是自动的,不需要再操作,我们的工作就是把它按在所需要监控的对象上
JButton login_button = new JButton(“登陆”);
login_button.addActionListener(new ActionListener(){实现方法;});
3.上面的监听器是系统提供的,往往不能满足需要,所以一般我们会自己重新构造一个监听器类,由于要能够实现监听器的方法,一般会想到去继承,但一般系统提供的都是借口,所以需要实现(不是继承)系统提供的监听器:
public class MyButtonListener implements ActionListener {
//由于是借口所以子类必须实现接口中的方法
public void actionPerformed(ActionEvent e) {实现方法;}
}
4.完成以上步骤后就可以做一个简单的事件触发机制了
示例:

public class JFrameTest {
public static void main(String[] args) {
JFrameTest Test = new JFrameTest();
Test.showFrame();
}

public void showFrame(){

JFrame frame = new JFrame("内部类事件处理机制");//窗口
FlowLayout fl = new FlowLayout();//布局
frame.setLayout(fl);

la_name = new JLabel();//名字标签
la_name.setText("名字:");
jta_name = new JTextField(20);//设置标签区域
jta_name.setText("larch");

JLabel la_password = new JLabel();//密码标签
la_password.setText("密码:");
JPasswordField jp_name =new JPasswordField("larch", 20);//密码区域
JButton bu_login = new JButton();//登陆按钮
bu_login.setText("登录");
bu_login.addActionListener(new ActionListener() {//时间处理器

@Override
public void actionPerformed(ActionEvent e) {//默认事件函数
// TODO Auto-generated method stub
ProcessEvent();//事件处理函数声明

}
});

frame.add(la_name);//加入名字标签
frame.add(jta_name);//加入名字区域
frame.add(la_password);//加入密码标签
frame.add(jp_name);//加入密码区域
frame.add(bu_login);//加入按钮
frame.setSize(300,500);//设置大小
frame.setDefaultCloseOperation(3);//设置退出方式
frame.setVisible(true);//设置可见性

}
private void ProcessEvent(){
String s = jta_name.getText();//获得名字区域内容
la_name.setText(s);//重新设置明知标签内容
jta_name.setText("");//清空名字区域内容
}
private JLabel la_name;
private JTextField jta_name;
}




public class MyButtonListener implements ActionListener {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "larch 你好!!");
Object sour = e.getSource();
if(sour instanceof JButton){
JButton bu = (JButton)sour;
String lab = bu.getText();
System.out.println("按下这个按钮"+lab);
}
else{
System.out.println("其他组建发出的事件");
}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值