Java Eclipse Klasse erstellen und auf Variablen zugreifen

Gast #3156117
Hallo,

ich habe noch eine Frage an die Experten:
1
knopf.addActionListener(new knopfListener());

Wenn ich z.B. diese Zeile schreibe, dann bietet mir Eclipse die 
Möglichkeit Create Class knopfListener() an.

Wenn ich dann im Dialog Enclosing Type die Hauptklasse wähle, dann wird 
eine innere Klasse erstellt und ich kann auf die Variablen und Methoden 
der Hauptklasse zugreifen.

Wie greife ich aber auf die Variablen der aufrufenden Klasse zu, wenn 
die Klasse als eigenständige Datei im Paket liegt?

Ich habe gelesen, dass das über getter und setter gemacht werden soll 
aber mir ist nicht klar wie ich das realisieren kann. Irgendwie muss ich 
der neuen Klasse ja mitteilen, wo die Variablen und Methoden liegen ...


mfg
Ahnungsloser Holger
Persönliche Seite #3156456
Generell kannst du (wenn es eh eine embedded klasse sein soll auch 
scheiben)
1
knopf.addActionListener(new ActionListener(){
2
 //Code der anonymen inneren Klasse
3
 ....
4
});
Wenn du es gerne als eigenständige Klasse haben willst, kannst du eine 
Referenz auf die Klasse im Konstruktor mitgeben
1
new knopfListener(this)
Gast #3157103
@Läubi

Moin, vielen Dank für die vielen Tipps. Ich hatte es auch so versucht. 
Das Problem war einfach, dass z.B. der Knopf, den ich manipulieren 
wollte, noch gar nicht angelegt war. Nur das Feld war da, aber eben kein 
Objekt. Und das geht dann schief ... war eine lange Nacht!

Und nochmals vielen Dank, dass Du mir mit dem Swingworker auf die 
Sprünge geholfen hast. Mit dem Swingworker laufen Swing und rxtxcomm 
wunderbar zusammen ohne großartige Verrenkungen machen zu müssen. Habe 
jetzt auch drei SW, die schön nacheinander abgearbeitet werden ohne das 
die GUI stottert!

Gruß
Holger
Persönliche Seite #3157549
Ahnungsloser Holger schrieb:
> noch gar nicht angelegt war

Alles was man sowieso benötigt, und nicht verändert werden soll am 
besten im Konstruktor anlegen oder direkt initialisieren z.B.
1
private final JButton button1 = new JButton("Mein Button");

Ahnungsloser Holger schrieb:
> Mit dem Swingworker laufen Swing und rxtxcomm
> wunderbar zusammen ohne großartige Verrenkungen machen zu müssen

Sag ich ja ;-)

Ahnungsloser Holger schrieb:
> war eine lange Nacht!

Vielleicht hilft es auch, das aktuelle Projekt erstmal etwas beiseite zu 
legen und sich noch etwas mit den Grundlagen und Konzepten von Java und 
Objektorientierter Programmierung zu beschaffen, dann wir sicher auch 
einiges gleich klarer.

Die Hilfen die Eclipse bietet sind zwar toll, sich aber rein daran 
langzuhangeln und durch try&error führt früher oder später in eine 
Sackgasse.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.