Generelle Frage zur GUI Progrmmaierung.
-
Hallo
Ich habe eine generelle Frage zur GUI Programmierung. Ich habe eine Klasse GUI, die die Gui baut, sowie einen ActionListener beinhaltet. weitere Klassen beinhalten die eigentliche Programmlogik. Wie geht man vor, damit die Gui mit den übrigen KLasse kommunizieren kann. Die erste Idee ist, eine statische (static) instanz der Gui zu erstellen. Auf diese können dann alle Programmteile zugreifen. Allerdings ist das sicher nicht optimal jede Instamz als static zu deklarieren.
Vielen Dank für eure Antworten.
-
Ich mache immer sowas in der Art:
class Gui { private DoSomething a; public Gui() { a=new DoSomething(this); // <-- } // ... } class DoSomething() { private Gui b; public void foo() { b.someEvent(); } }
Alternativ kannst du auch eine Art Event-Interface machen und dieses in deiner Gui Klasse implementieren.
-
Danke für deine Antwort. Also wenn ich das richtig sehe, registrierst du in jder instanz deine gui und umgekehrt. Ich habe allerdings auch schon an eine Umsetzung mit events gedacht aber bisher noch keine richtige idee gehabt
-
Events gehören in der Regel zur grafischen Oberfläche (Maustaste gedrückt, Taste gedrückt, ...) und sollten deswegen nur in der GUI Klasse vorkommen. Wenn du eine Applikation mit mehreren Threads hast, kannst du auch Events in die Event-Queue des Fensters einreihen.
Das geht soweit ich mich erinnern kann mit der EventQueue Klasse aus dem java.awt Paket. Sieh dir vor allem die Methoden invokeLater und postEvent an.