Ich bin kürzlich auf ein Problem gestoßen, das versucht, Model-View-Controller in Swing zu implementieren.Wie man die Ansicht und den Controller in Swing koppelt
Ich habe eine GUI-Klasse, die aus Unter-Panels besteht, und diese Unter-Panels bestehen aus anderen Unter-Panels. In einem dieser Sub-Sub Panels befindet sich nun ein JButton. Im ActionListener für dieses JButton möchte ich eine Methode im Controller aufrufen. Um dies zu tun, müsste ich den Controller tief in den Eingeweiden der GUI an das Sub-Sub-Panel übergeben, wo sich der JButton befindet. Dann müsste ich in diesem Sub-Sub-Panel einen ActionListener an die JButton anhängen und die actionPerformed() -Funktion ausfüllen, indem ich die Methode, die ich im Controller aufrufen wollte, aufruft.
Ich bin sicher, dass Sie alle das Problem sehen. Gibt es eine gute Möglichkeit zu vermeiden, den Controller tief in die Tiefe der GUI zu übergeben.
Mein einziger Gedanke war, den Controller ein Singleton zu machen, um es von der Ansicht zu entkoppeln, aber ich habe gehört, dass Singletons normalerweise böse sind.
Jeder Rat in dieser Angelegenheit würde am meisten geschätzt werden. Danke im Voraus!