java 关于mouselistener
我想做的事:鼠标点击到每一个Jlabel时做出不同的反应用的是mouseClicked和e.getSource()==l1<--这个是Jlabel的名字但是实际上点击是不...
我想做的事:鼠标点击到每一个Jlabel时做出不同的反应
用的是mouseClicked和e.getSource()==l1<--这个是Jlabel的名字
但是实际上点击是不会触发该事件。。
然后网上看到说是要用getComponent 同样没有触发。。
到底该怎么写。。 展开
用的是mouseClicked和e.getSource()==l1<--这个是Jlabel的名字
但是实际上点击是不会触发该事件。。
然后网上看到说是要用getComponent 同样没有触发。。
到底该怎么写。。 展开
1个回答
展开全部
你自己写的类不要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。否则编译通不过的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询