2016-05-05 15 views
0

Im Folgenden versuche ich, den Wert von String temp dem Stringtest zuzuordnen, so dass er außerhalb der aktionistener-Klasse bearbeitet werden kann. Ich bekomme einen Fehler, dass die Variable final oder effektiv final sein muss. Gibt es eine Möglichkeit, den Wert von Temp außerhalb der Klasse zu erhalten, damit daran gearbeitet werden kann?Java Textfeld, Übertragung String aus der Listener-Klasse

String test; 
textField.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
    temp = UserScreen.textField.getText(); 
    UserScreen.messageAppend(temp); 
    test = temp; 
} 
}); 
+0

http://stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-anonymous-class –

Antwort

0

Eine Action wird nur aufgerufen, wenn eine Aktion stattfindet, so nur, nachdem Sie es in Ihrer Funktion erklären, der String-Test null sein wird.

Sie könnten einen Stringtest als Membervariable Ihrer Klasse deklarieren und später wiederverwenden.

0

Damit das funktioniert, sollten Sie die String test; als Klassenvariable deklarieren und nicht dort.

Ein andere Möglichkeit wäre es als endgültig sein zu erklären, aber das macht keinen Sinn in Ihrem Code, denn sobald yout erklärt würde es Wert nicht in der Lage sein, zu ändern ...

So Option 1 ist die Art und Weise zu sein Ihr Fall