Variablen Variable von void im ActionListener verwenden

Player2000

Mitglied
Mein Problem kann man im Code sehen, ich hätte dazu zwar schon eine Lösung (eine neue Klasse erstellen, die den Actionlistener implementiert, und bei dieser die Variable i setzten), wäre aber froh, wenn sich eine einfacherer Löung finden liesse. ???:L

Ich wünsche allen die dies lesen eine schöne Weihnachtszeit :toll:

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;

public class test {

	public static void main(String[] args) {
		JButton btn = new JButton();
	
                int i = (int)(Math.random() * 50)

		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				System.out.println(i); // auf i kann nicht zugegriffen werden, wie kann ich darauf zugreifen?
			}
			
		});
	}

}


wer schreibfehler findet darf sie behalten :bae:
 
Entweder ...

Java:
	        final int i = (int)(Math.random() * 50);

oder als Klassenattribut

ps. Klassen schreibt man groß 😛
 
mal von abgesehen das der compiler in diesem fall einen error hätte erzeugen müssen der ungefähr das sinngemäß ausdrückt das man von inneren anonymen klassen nicht auf non-final der äußeren klasse zugreifen kann ... und zur not hätte google es auch noch gewusst ...
 

Zurück
Oben