java 关于mouselistener

我想做的事:鼠标点击到每一个Jlabel时做出不同的反应用的是mouseClicked和e.getSource()==l1<--这个是Jlabel的名字但是实际上点击是不... 我想做的事:鼠标点击到每一个Jlabel时做出不同的反应
用的是mouseClicked和e.getSource()==l1<--这个是Jlabel的名字
但是实际上点击是不会触发该事件。。
然后网上看到说是要用getComponent 同样没有触发。。

到底该怎么写。。
展开
 我来答
如梦★初醒℃
推荐于2018-04-12 · TA获得超过346个赞
知道小有建树答主
回答量:293
采纳率:66%
帮助的人:182万
展开全部

你自己写的类不要implements MouseListener,而是单独给每个JLabel以匿名内部类的形式添加鼠标监听器:

JLabel lab1 = new JLabel();
lab1.addMouseListener(new MouseAdapter()
{
  public void mouseClicked(MouseEvent e)
  {
    //写你要做的事
  }
});

JLabel lab2 = new JLabel();
lab2.addMouseListener(new MouseAdapter()
{
  public void mouseClicked(MouseEvent e)
  {
    //写你要做的事
  }
});

 

ps:你要做的事那里如果涉及到lab自己或者其他组件,那么声明组件时前面要加上final。比如假设你的界面上有个文本框JTextField txt,而你想点击lab1标签时在其中显示某条信息,那么声明txt时就要写final JTextField txt = new JTextField();又比如你想点击lab2时将其本身的文字信息换成另外的,那么在上面代码的第10行前面也要加上final。否则编译通不过的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式