Aktion.java:10: cannot find symbol
symbol : variable tf
location: class Aktion
la.setText( "Der eingelesene Text lautet: " + tf.getText() );
^
Aktion.java:10: cannot find symbol
symbol : variable la
location: class Aktion
la.setText( "Der eingelesene Text lautet: " + tf.getText() );
^
2 errors
Warum geht das nicht, ich habe „tf“ und „la“ doch definiert.
Warum geht das nicht, ich habe „tf“ und „la“ doch definiert.
Aber in zwei unterschiedlichen Klassen. Und selbst in einem anonymen ActionListener müsste das Feld immer noch final sein, um im ActionListener darauf zugreifen zu können.
Aktion.java:10: cannot find symbol
symbol : variable la
location: class Aktion
Das liegt daran das der ActionListener (Action-Klasse) nur seine Varablen usw. „sieht“ und die Variabel „la“ gehört der Klasse Visualisierung.
Die Quick und Dirty Lösung wäre:
Quellcode von Aktion:
-----------------------------
import java.awt.\*;
import java.awt.event.\*;
public class Aktion implements ActionListener
{
private Visualisierung visual;
Aktion(Visualisierung visual)
{
this.visual = visual;
}
public void actionPerformed(ActionEvent ae)
{
visual.getLa().setText( "Der eingelesene Text lautet: " + visual.getTf().getText();
)
}
und die Klasse Visualisierung muss umgestricken:
die Klasse Visualisierung umbenennen.
alles was in der Main-Methode ist, sollte in einer eigenen neuen Klasse Visualisierung
in der neuen Klasse Visualisierung sind die Variablen „tf“, „la“ und „bt“ Instanzvariablen mit entsprechenden Gettern/Settern.
4)deine Klasse mit der Main-Methode sollte in etwa so aussehen:
class VisualMain
{
public static void main (String[] argv)
{
Visualisierung visual = new Visualisierung();
Action action = new Action(visual);
visual.getBt().addActionListener(action);
}
}