Wenn ich ein ActionListener auf ein Textfeld setze und so die Eingabe bearbeiten will
bekomme ich ein Laufzeitfehler beim start des Programms, compilieren läuft fehlerfrei.
Das ist die Zeile, die im Construcktor eingebaut ist
textfield.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.prinln(„Enter gedrueckt“);
}
});
Das ist die Fehlermeldung:
Exception in Thread main java.lang.noClassDefFoundErr in Dateiname$1
Warum bekomme ich diese Fehlermeldung ?
Wie kann ich ein actionListener korrekt abfragen ?
Mit textfield.addActionListener(new
java.awt.event.ActionListener() {…
hast du ein anonymous class erstellt. In diesem Fall erzeugt der Compiler ein neues class-Datei Dateiname$1. Die VM wirft die Exception wenn sie beim Ausführen der class die Datei in der project-path nicht finden kann.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
kann es sein, daß ein Punkt (.) im CLASSPATH helfen würde?
Versuchs doch mal!
Wenn du keine anonyme Klasse willst, mußt du eben eine eigene Klasse erstellst, die das Interface ActionListener implementiert. In dieser Klasse gibt es dann nur die Methode actionPerformed(ActionEvent evt).
An das Textfeld hängst du dann den Listener im Prinzip genauso wie du es vorher gemacht hast:
Vielen Dank !Ich habe die Listener jetzt verstanden.
Wusste nicht wo die $1 Datei herkam und hab sie desegen nicht im class Verzeichnis kopiert. Du hat mir weitergeholfen und den Befehl für die Abfrage des Feldes werde ich mir auch gut merken (notieren).
cu
Jörg
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Danke !
Also eine neue Klasse erstellen für jeden Listener. Das finde ich zwar schade, aber ich habe denn Ablauf der Events zumindest
verstanden. Un mein Verdacht, wie ich die Listener anspreche hat sich damit bestätigt.
Da ich einen Job geschrieben hab der aus dem Klassenverzeichnis aufgerufen wird und wieder im dort landet hilft mir der Punkt nichts. Mein Fehler (unwissenheit was die $1 Datei ist) war, dass ich die Klasse des Action´Listener nicht mit ins Klassenverzeichnis kopiert habe und deswegen entstand der Fehler zur Laufzeit !
cu
Jörg
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]