G
Guest
Gast
Hallo liebe Leute!
Ich habe eine (simple) Frage zum Design von Swing-Applikationen.
Man stelle sich vor eine Programmkomponente wird auf einem
JPanel angezeigt.
In dieser Klasse Haupt-JPanel gibt es:
1. JTable auf dem in Listenform Aufträge amgezeigt werden
2. Einen eigenen JTable der JTable erweitert und die Produkte, des im ersten JTabel ausgewählten anzeigt.
3. Ein Hauptmenu JPanel, auf dem JButtons angezeigt werden, dei je nach Auswahl der Produkte im 2.Jtable enabled werden.
(Diese Komponenten sind Instanzvariablen der Klasse Haupt-JPanel)
Im Prinzip hab ich hier 3 Komponenten, die miteinander kommunizieren müssen.
Beispiel:
Wir im ersten JTable ein Auftrag ausgewählt muss der 2. eigene JTable mit den entsprechenden Produkten gefüllt werden.
Wird im 2. eigen JTabel ein Produkt ausgewählt, wird ein Button im Hauptmenu enabled.
Dies ist ein sehr simples Beispiel, jedoch wie löst man sowas sauber?
Sollt man da echt das Observer Pattern anwenden?
Oder ist das bei so einer relativ simplen Aufgabenstellung nicht übertriebener Aufwand?
Momentan ist es bei mir leider sehr unsauber:
D.h
Jeder Komponente wird die benötigte Kommunikationskomponente im Konstruktor mitübergeben.
Dies führt in diesem Beispiel zu folgendem "desaster":
Der ActionListenr des 1.JTabel mit den Aufträgen wird in der Klasse Haupt-JPanel implementiert.
D.h ich merke bereits in dieser Klasse, wenn ein Auftrag ausgewählt wurde und kann eine Method fülleJTable vom 2. eigenen Jtabel aufrufen. (Ist also kein Problem)
Wird nun im 2. JTable was aufgerufen, soll ein Button des Haupt-JPanel enabled werden.
Der ActionListener des 2. eigen Table befindet sich in der 2.eigenTableKlasse. Hier ist die Sache schon undurchsichtiger, den wie greife ich saueber auf den Button des Haupt-Jpanel zu?
(Wie gesagt, momentan kann ich das, da ich dieser Unterkomponete auch das Haupt-Jpanel übergebn habe)
Wie löst ein Profi sowas?
Wird in verschachtelten GUIs, in denen die eine Aktion in einer Komponente die Darstellung einer anderen beinflusst(Bsp füllen eines JTables, enabeln eins Buttons etc) immer über das Observer-Pattern gelöst?
Ich wäre sehr dankbar für etwaige Hinweise oder Vorschläge.
lg
mas
Ich habe eine (simple) Frage zum Design von Swing-Applikationen.
Man stelle sich vor eine Programmkomponente wird auf einem
JPanel angezeigt.
In dieser Klasse Haupt-JPanel gibt es:
1. JTable auf dem in Listenform Aufträge amgezeigt werden
2. Einen eigenen JTable der JTable erweitert und die Produkte, des im ersten JTabel ausgewählten anzeigt.
3. Ein Hauptmenu JPanel, auf dem JButtons angezeigt werden, dei je nach Auswahl der Produkte im 2.Jtable enabled werden.
(Diese Komponenten sind Instanzvariablen der Klasse Haupt-JPanel)
Im Prinzip hab ich hier 3 Komponenten, die miteinander kommunizieren müssen.
Beispiel:
Wir im ersten JTable ein Auftrag ausgewählt muss der 2. eigene JTable mit den entsprechenden Produkten gefüllt werden.
Wird im 2. eigen JTabel ein Produkt ausgewählt, wird ein Button im Hauptmenu enabled.
Dies ist ein sehr simples Beispiel, jedoch wie löst man sowas sauber?
Sollt man da echt das Observer Pattern anwenden?
Oder ist das bei so einer relativ simplen Aufgabenstellung nicht übertriebener Aufwand?
Momentan ist es bei mir leider sehr unsauber:
D.h
Jeder Komponente wird die benötigte Kommunikationskomponente im Konstruktor mitübergeben.
Dies führt in diesem Beispiel zu folgendem "desaster":
Der ActionListenr des 1.JTabel mit den Aufträgen wird in der Klasse Haupt-JPanel implementiert.
D.h ich merke bereits in dieser Klasse, wenn ein Auftrag ausgewählt wurde und kann eine Method fülleJTable vom 2. eigenen Jtabel aufrufen. (Ist also kein Problem)
Wird nun im 2. JTable was aufgerufen, soll ein Button des Haupt-JPanel enabled werden.
Der ActionListener des 2. eigen Table befindet sich in der 2.eigenTableKlasse. Hier ist die Sache schon undurchsichtiger, den wie greife ich saueber auf den Button des Haupt-Jpanel zu?
(Wie gesagt, momentan kann ich das, da ich dieser Unterkomponete auch das Haupt-Jpanel übergebn habe)
Wie löst ein Profi sowas?
Wird in verschachtelten GUIs, in denen die eine Aktion in einer Komponente die Darstellung einer anderen beinflusst(Bsp füllen eines JTables, enabeln eins Buttons etc) immer über das Observer-Pattern gelöst?
Ich wäre sehr dankbar für etwaige Hinweise oder Vorschläge.
lg
mas