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被按下了??????
}
}
展开
 我来答
lusongandlinux
2009-06-30 · TA获得超过100个赞
知道答主
回答量:265
采纳率:0%
帮助的人:165万
展开全部
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的事件处理语句
}
}
}
百度网友bb2ba868f
2009-06-30 · TA获得超过863个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:310万
展开全部
这样试试看:
if(e.getSourse==e.jLabel_1)
{.....}
else if(e.getSourse=e.jLabel_2)
{.....}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式