在前面我们学习了图形界面的制作之后,顺其自然的我们会想到,要怎样才能实现登录等功能,如果只有一个界面,显然没有任何的实际意义。
今天和大家一起学习的是Java监听器的使用,有了这方面的知识,相信大家能够对图形界面有更深入的了解。
事件监听器:
在swing事件模型中由3个分离的对象完成对事件的处理,分别为事件源,事件以及监听程序。
事件源触发一个事件,它被一个或多个“监听器”接受,监听负责处理事件
什么是事件监听器呢?所谓事件监听器实际是就是一个“实现特定类型监听器接口”的类对象。
下面先为大家介绍动作事件监听器:
很多事件都会使用它进行监听:如按钮被单击
事件名称:ActionEvent
事件源:JButton,JList,JTextField
监听接口:ActionListener
添加或移除相应类型的监听器的方法:
addActionListener(),removeActionListener()
下面来看具体的实例:
我们本次要完成的是登录功能的实现,即当你的账号密码正确时显示登录成功;
/***********************************/
定义图形界面代码略
/**********************************/
我们首先要做的是定义一个监听类:
public class DrawListener implements ActionLisener{
private JFrame frame;
private JTextField account;
private JPasswordField password;
//写构造函数,将需要用到的对象传参进来public DrawListener(JFrame frame,JTextField account,JPasswordField password){
this.frame=frame;
this.account=account;
this.password=password;
}
//按下ctrl+左键点击ActionLisener查看源码,重写接口中定义的方法public void actionPerformed(ActionEvent e){
//password.getPasswird()得到的是char[]类型的数据,需转化为String类,用String.valueOf()实现if(String.valueOf(password.getPassword()).equals("123456")&&account.getText().equal("791072385")){
System.out.println("登录成功");
frame.dispose();//关闭原来的登录界面,}
else System.out.println("账号或密码错误,请重新登录~");
}
}
接下来在主函数所在类的中添加监听。
即:
DrawListener dl=new DrawListener(frame,account,password);//初始化监听类对象button.addActionListener(dl);//对按钮button对象实现监听
然后运行调试即可实现登录。
当然也可以在actionPerformed()函数中定义一个窗体,当账号密码通过时弹出一个登录成功的窗口。
在这儿就不做过多解释了
常用的事件监听器还有很多:
焦点事件监听器:
事件名称:FocusEvent
事件源:JPassordField,JTextField,Component以及派生类
监听接口:FocusListener
添加或移除相应类型的监听器的方法:
addFocusListener(),removeFocusListener()
//利用该监听器,我们可以实现,账号密码登录框在没有点击的时候出现请输入登录密码等等,点击的时候变为空白
鼠标点击事件监听器:
事件名称:MouseEvent
事件源:画板等
监听接口:MouseListener
添加或移除相应类型的监听器的方法:
addMouseListener(),removeMouseListener()
//利用此监听器我们可以实现在画图板中绘制直线,矩形,圆
鼠标移动事件监听器:
事件名称:MouseMotionEvent
事件源:画板等
监听接口:MouseMotionListener
添加或移除相应类型的监听器的方法:
addMouseMotionListener(),removeMouseMotionListener()
//利用此监听器我们可以实现画图板中的橡皮擦,刷子等功能
鼠标滑轮滚动事件监听器:
事件名称:MouseWheelEvent
事件源:画板等
监听接口:MouseWheelListener
添加或移除相应类型的监听器的方法:
addMouseWheelListener(),removeMouseWheelListener()
以上监听器的具体使用方法在这里不一一具体使用,以后实现画图板的时候会具体讲,大概的使用方法和ActionListener都差不多,小伙伴们可以自己动手尝试一下。