Hallo,
Es geht bei meinem Programm um die Variable var1. Die soll durch den Buttonklick einen anderen Wert zugewiesen bekommen, welcher über die Methode wechsel geändert wird.
Das Problem ist, dass der Kompiler möchte, dass ich die Variable var1 als final definiere. Der Fehler in Zeile 20 sieht folgendermaßen aus:
"Cannot refer to a non-final variable var1 inside an inner class defined in a different method"
Mache ich das, dann kann ich den Wert ja nicht mehr ändern und bekomme eine entsprechende Fehlermeldung:
"Multiple markers at this line
- The final local variable var1 cannot be assigned, since it is defined in an enclosing
type
- Cannot refer to a non-final variable var1 inside an inner class defined in a different
method"
Kann ich das final irgendwie umgehen?
Vielen Dank im Voraus für die Hilfe.
Hier der entsprechende Qulltext:
Es geht bei meinem Programm um die Variable var1. Die soll durch den Buttonklick einen anderen Wert zugewiesen bekommen, welcher über die Methode wechsel geändert wird.
Das Problem ist, dass der Kompiler möchte, dass ich die Variable var1 als final definiere. Der Fehler in Zeile 20 sieht folgendermaßen aus:
"Cannot refer to a non-final variable var1 inside an inner class defined in a different method"
Mache ich das, dann kann ich den Wert ja nicht mehr ändern und bekomme eine entsprechende Fehlermeldung:
"Multiple markers at this line
- The final local variable var1 cannot be assigned, since it is defined in an enclosing
type
- Cannot refer to a non-final variable var1 inside an inner class defined in a different
method"
Kann ich das final irgendwie umgehen?
Vielen Dank im Voraus für die Hilfe.
Hier der entsprechende Qulltext:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test {
public static void main(String[] args) {
JFrame wnd = new JFrame("Ueberschrift");
wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
panel.setLayout(null);
wnd.setSize(1280,1024);
wnd.add(panel);
final JButton button1 = new JButton ("KLICK");
button1.setBounds(100, 900, 75, 15);
panel.add(button1);
final String var1 = "test";
button1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e){
var1 = wechsel("neu");
}
});
System.out.print(var1);
}
public static String wechsel(String set){
return set;
}}