Zugriff auf Variable innerhalb der inneren Klasse in Java

Ich versuche, ein Array von JLabels zu erstellen. Alle sollten beim Klicken unsichtbar werden. Das Problem tritt auf, wenn versucht wird, den Maus-Listener über eine innere Klasse einzurichten, die Zugriff auf die Iterationsvariable der Schleife benötigt, die zum Deklarieren der Beschriftungen verwendet wird. Code ist selbsterklärend:

    for(int i=1; i<label.length; i++) {
       label[i] = new JLabel("label " + i);
       label[i].addMouseListener(new MouseAdapter() {
          public void mouseClicked(MouseEvent me) {
             label[i].setVisible(false);   // compilation error here
          }
       });
       cpane.add(label[i]);
    }

Ich dachte, dass ich dies durch die Verwendung von @ überwinden könnthis oder vielleichtsuper anstelle des Aufrufs vonlabel[i] innerhalb der inneren Methode, aber ich konnte es nicht herausfinden.

Der Kompilierungsfehler lautet: Auf die lokale Variable i wird innerhalb der inneren Klasse zugegriffen. muss als final deklariert werd

Ich bin mir sicher, dass die Antwort etwas wirklich Dummes sein muss, an das ich nicht gedacht habe, oder vielleicht mache ich einen kleinen Fehler.

Jede Hilfe wäre dankbar

Antworten auf die Frage(10)

Ihre Antwort auf die Frage