java JPanel中多个JLabel,如何判断事件源是哪个JLabel?
我在一个JPanel中放了两个JLabel,并在JLabel上添加了鼠标监听器我定义了一个监听器类,怎么判断我在哪个JLabel上点了鼠标?部分代码:classMyJPa...
我在一个JPanel 中放了两个JLabel,并在JLabel上添加了鼠标监听器
我定义了一个监听器类,怎么判断我在哪个JLabel上点了鼠标?
部分代码:
class MyJPanel{
public MyJPanel(){
JLabel jLabel_1 =new JLabel();
JLabel jLabel_1 =new JLabel();
//设置两个JLabel的位置,大小
……
//给两个JLabel添加自定义监听器
jLabel_1.addMouseListener(new MyMouseListener());
jLabel_2.addMouseListener(new MyMouseListener());
//设置JPanel的位置,大小
……
}
}
class MyMouseListener extends MouseAdapter{
public void mouseClicked(MouseEvent e) {
//请问我如果在这里判断是哪个JLabel被按下了??????
}
} 展开
我定义了一个监听器类,怎么判断我在哪个JLabel上点了鼠标?
部分代码:
class MyJPanel{
public MyJPanel(){
JLabel jLabel_1 =new JLabel();
JLabel jLabel_1 =new JLabel();
//设置两个JLabel的位置,大小
……
//给两个JLabel添加自定义监听器
jLabel_1.addMouseListener(new MyMouseListener());
jLabel_2.addMouseListener(new MyMouseListener());
//设置JPanel的位置,大小
……
}
}
class MyMouseListener extends MouseAdapter{
public void mouseClicked(MouseEvent e) {
//请问我如果在这里判断是哪个JLabel被按下了??????
}
} 展开
2个回答
展开全部
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
//为更好的进行访问,我改变了你的代码顺序
//e.getSource()用于访问事件源对象
//你原来的方法没下面的处理好
//1.你把JLabel_1和JLabel_2分别注册到了两个方法体中
//2.如果把事件处理类作为外部类,不利于事件处理函数对事件源的控制
class MyJpanel extends MouseAdapter{
//为便于访问,变量的定义最好在构造函数外定义
JLabel jLabel_1 =new JLabel();
JLabel jLabel_2 =new JLabel();
public MyJpanel(){
//设置两个JLabel的位置,大小
//给两个JLabel添加自定义监听器
jLabel_1.addMouseListener(this);
jLabel_2.addMouseListener(this);
//设置JPanel的位置,大小
}
public void mouseClicked(MouseEvent e) {
if (e.getSource()==jLabel_1) {
//编写jLabel_1的事件处理语句
}
else if (e.getSource()==jLabel_2) {
//编写jLabel_2的事件处理语句
}
}
}
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
//为更好的进行访问,我改变了你的代码顺序
//e.getSource()用于访问事件源对象
//你原来的方法没下面的处理好
//1.你把JLabel_1和JLabel_2分别注册到了两个方法体中
//2.如果把事件处理类作为外部类,不利于事件处理函数对事件源的控制
class MyJpanel extends MouseAdapter{
//为便于访问,变量的定义最好在构造函数外定义
JLabel jLabel_1 =new JLabel();
JLabel jLabel_2 =new JLabel();
public MyJpanel(){
//设置两个JLabel的位置,大小
//给两个JLabel添加自定义监听器
jLabel_1.addMouseListener(this);
jLabel_2.addMouseListener(this);
//设置JPanel的位置,大小
}
public void mouseClicked(MouseEvent e) {
if (e.getSource()==jLabel_1) {
//编写jLabel_1的事件处理语句
}
else if (e.getSource()==jLabel_2) {
//编写jLabel_2的事件处理语句
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询