Java 我可以使用mouselistener/mouseadapter访问标签[][]中的所有标签吗?

Java 我可以使用mouselistener/mouseadapter访问标签[][]中的所有标签吗?,java,swing,label,mouselistener,Java,Swing,Label,Mouselistener,我有一个标签[],并且这个标签中的所有标签都有mouseadapter,当任何mouselistener被触发时,我希望访问所有标签。所有标签都有一个图标。如果我点击其中一个,所有标签都会改变图标 我的代码中的示例: for(int x = 1; x < 11; x++){ for(int y = 1; y < 11; y++){ label[x][y].setIcon(korok[randomGenerator.nextInt(6)]);

我有一个标签[],并且这个标签中的所有标签都有mouseadapter,当任何mouselistener被触发时,我希望访问所有标签。所有标签都有一个图标。如果我点击其中一个,所有标签都会改变图标

我的代码中的示例:

for(int x = 1; x < 11; x++){
        for(int y = 1; y < 11; y++){
            label[x][y].setIcon(korok[randomGenerator.nextInt(6)]);
            label[x][y].addMouseListener(new LabelMouseListener(x, y));}}
        }
    }

public class LabelMouseListener extends MouseAdapter{
private final int x, y;

public LabelMouseListener() {
    this.x = x;
    this.y = y;
}
                @Override
                public void mouseClicked(MouseEvent e) {

                    int egyklik[] = new int[3];

                    if(egyklik[0] == 0){
                        egyklik[0] = 1; egyklik[1] = x; egyklik[2] = y;
                    }
                    else if(egyklik[0] == 1){
                        //JLabel l = (JLabel) e.getSource();
                        // it's wrong code, i would like something what will do this,
                        //if i do the Override in the other(JFrame) class, it can
                        //reach labels, but can't use x and y

                        //label[x][y].setIcon(label[egyklik[1]][egyklik[2]].getIcon());
                        //label[egyklik[1]][egyklik[2]].setIcon(label[x][y].getIcon());
                    }
                }

}
for(int x=1;x<11;x++){
对于(int y=1;y<11;y++){
标签[x][y].setIcon(korok[randomGenerator.nextInt(6)];
标签[x][y].addMouseListener(新的LabelMouseListener(x,y));}
}
}
公共类LabelMouseListener扩展了MouseApter{
私人最终整数x,y;
公共LabelMouseListener(){
这个.x=x;
这个。y=y;
}
@凌驾
公共无效mouseClicked(MouseEvent e){
int-egyklik[]=新int[3];
if(egyklik[0]==0){
egyklik[0]=1;egyklik[1]=x;egyklik[2]=y;
}
else if(egyklik[0]==1){
//JLabel=(JLabel)e.getSource();
//这是错误的代码,我想知道怎么做,
//如果我在另一个(JFrame)类中进行重写,它可以
//到达标签,但不能使用x和y
//label[x][y].setIcon(label[egyklik[1]][egyklik[2]].getIcon());
//label[egyklik[1]][egyklik[2]].setIcon(label[x][y].getIcon());
}
}
}

是,您可以访问所有标签

为什么从索引1开始。请参见for循环中的(
intx=1和inty=1

我认为x和y从索引0开始

x<11;y<11需要更改为
x<10;y<10分别

在mouseClicked()方法中,执行以下操作

JLabel l = null;
if(e.getSource() instanceof JLabel){
     l = (JLabel) e.getSource();

}

我有一个框架,x,y=0,11是这个,但我认为这并不重要。否则,我找到了一个解决方案(尽管我不知道它是完全正常的)。无论如何,谢谢,我也用了你的例子。如果有人需要工作代码,请询问。