事件和监听器的使用

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("其他组建发出的事件");
		}

	}

}



你可能感兴趣的:(监听器)