一、前言
上篇文章讲述了监听事件中的动作监听,这篇文章会讲述另一个监听机制——鼠标监听,具体定义和概念可以看上文回顾
二、简易鼠标监听按钮
1.创建按钮对象
与上文相同的代码,唯一不同的是,我们把创建的按钮对象放到成员类中了,具体这样做的原因会在后面详细解释
JButton jtb1 = new JButton("点击我有惊喜哦");
2.搭建页面
跟着做小游戏的小伙伴应该很熟悉这个步骤了吧,那就不多做介绍,直接上代码
public test(){ //设置界面大小 this.setSize(603,680); //设置标题 this.setTitle("拼图小游戏 V1.0"); //设置永远置顶 this.setAlwaysOnTop(true); //设置程序随着窗口关闭而结束运行 //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setDefaultCloseOperation(3); //设置界面居中 this.setLocationRelativeTo(null); //取消默认放置位置 this.setLayout(null); //设置宽高 this.setBounds(0,0,200,50); }
3.设置宽和高
jtb.setBounds(0,0,200,50);
4.设置监听事件
这里我们使用addMouseListener()来实现鼠标监听,同样,我们选中使用Ctrl+B跟进
我们再跟进一次
可以看到它是一个接口,那么我们就要实现接口内抽象类,由于实际开发过程中按钮肯定不止一个,如果每一个都写匿名内部类的话,代码冗余度太高了,不利于代码的维护,所以我们把按钮的对象定义在内部类中,再让本类去继承MouseListener的接口,这样只需要重新所有方法即可
这里有五个方法,对应解释也在图中了
- mouseClicked:鼠标单击
- mousePressed:鼠标按住不放
- mouseReleased:鼠标松开
- mouseEntered:鼠标划入
- mouseExited:鼠标划出
重写方法后要记得在括号内传递参数this,表示调用本类中的代码
//绑定鼠标事件 jtb1.addMouseListener(this);
5.将按钮放在界面中
jFrame.getContentPane().add(jtb1);
6.设置界面可视化
jFrame.setVisible(true);
7.设置按钮程序入口
public class testButton2 { public static void main(String[] args) { new test(); } }
三、完整代码
import javax.swing.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class test extends JFrame implements MouseListener { //创建按钮对象 JButton jtb1 = new JButton("点击我有惊喜"); public test(){ //设置界面大小 this.setSize(603,680); //设置标题 this.setTitle("拼图小游戏 V1.0"); //设置永远置顶 this.setAlwaysOnTop(true); //设置程序随着窗口关闭而结束运行 //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setDefaultCloseOperation(3); //设置界面居中 this.setLocationRelativeTo(null); //取消默认放置位置 this.setLayout(null); //设置宽高 jtb1.setBounds(0,0,200,50); //绑定鼠标事件 jtb1.addMouseListener(this); //将按钮放在界面中 this.getContentPane().add(jtb1); //设置界面可视化 this.setVisible(true); } @Override public void mouseClicked(MouseEvent e) { System.out.println("单击"); } @Override public void mousePressed(MouseEvent e) { System.out.println("按住不松"); } @Override public void mouseReleased(MouseEvent e) { System.out.println("松开"); } @Override public void mouseEntered(MouseEvent e) { System.out.println("划入"); } @Override public void mouseExited(MouseEvent e) { System.out.println("划出"); } }
四、测试代码
这里小伙伴可以自己试验一下
五、结语
接下来我们将讲述键盘监听机制,讲完以后就可以继续我们的拼图小游戏啦~