如何在Java中识别标签的ID

如何在Java中识别标签的ID,java,swing,jlabel,Java,Swing,Jlabel,我已经按数组创建了9个jlabel。它有一个带有mouseClicked(MouseEvent src){…}方法的公共事件侦听器,这里我发现的问题是,如何识别单击了哪个JLabel 比如说,如果点击标签[0],那么我想显示“点击标签-0”, 如果单击标签[1],则我希望显示“已单击标签-1” 我能表演这个吗?如果是,那怎么办 注意:-我发现一些答案说明添加自定义“id”属性,但首先,我更喜欢是否存在任何默认方法。您可以循环数组,将事件源与数组中的每个元素进行比较 for (int index

我已经按数组创建了9个jlabel。它有一个带有mouseClicked(MouseEvent src){…}方法的公共事件侦听器,这里我发现的问题是,如何识别单击了哪个JLabel

比如说,如果点击标签[0],那么我想显示“点击标签-0”, 如果单击标签[1],则我希望显示“已单击标签-1”

我能表演这个吗?如果是,那怎么办


注意:-我发现一些答案说明添加自定义“id”属性,但首先,我更喜欢是否存在任何默认方法。

您可以循环数组,将事件源与数组中的每个元素进行比较

for (int index = 0; index < myLabelArray.length; index++) {
    if (myLabelArray[index].equals(src.getSource())) {
        System.out.println("Label-" + index + " was clicked");
        break;
    }
}

或者您可以使用
映射
而不是数组或
列表

添加标签

 JPanel pnl = new JPanel(new FlowLayout());
 dd.add(pnl);
 addlistener();
 for (int i = 0; i < 10; i++) {
        pnl.add(lbl[i] = new JLabel("" + i));
        lbl[i].addMouseListener(listern);

 }

为什么不将MouseEvent源代码与每个JLabel进行比较,直到它返回true?是的,这很简单但很有效(我不知道为什么这个解决方案没有出现在我的脑海中)?嗨,谢谢你给出答案,我没有任何JLabel文本的用途,实际上我想识别那个对象并相应地执行一些操作。正如我所知,你的答案会给出“标签+标签文本”嗨,这让我觉得很有趣,所以最后,没有默认的方法来获取对象名,是吗?
f(mylabelaray.equals(src.getSource()){
DYM
f(mylabelaray[index].equals(src.getSource())){
?我会在这里使用一个for each循环,更好。@andrew+1 nice spot干杯。这是一个漫长的一天,有着明显的错误……这就是我的代码:P@hakoo这取决于对象名的含义。如果对象已经在数组中,它们实际上没有相同的名称(没有对象真正有名称,它们只是有一个引用)
public void mouseClicked(MouseEvent evt) {
    System.out.println("Label-" + ((JLabel)evt.getSource()).getName() + " was clicked");
}
 JPanel pnl = new JPanel(new FlowLayout());
 dd.add(pnl);
 addlistener();
 for (int i = 0; i < 10; i++) {
        pnl.add(lbl[i] = new JLabel("" + i));
        lbl[i].addMouseListener(listern);

 }
public void mouseEnter(MouseEvent me) {
                System.err.println("Hi");
                me.getComponent();
                if(me.getSource() instanceof JLabel){
                    System.out.println("lable"+ ((JLabel)me.getSource()).getText());
                }
            }