Hallo,
wie würdet ihr bei komplexen Programmen mit aufwendiger GUi den Code auf die Klassen verteilen oder wie die Klassen organisieren?
Ich habe mir hierfür folgendes Schema erstellt, wo ich noch ein wenig Probleme habe. Alle unteren Klassen sind einzeln abgespeichert. Zunächst habe ich eine Mainklasse in der ich die Konfiguration lade und die Gui starte. Auch das speichern der Konfiguration kommt in diese Klasse. Dann gibt es eine Klasse Config in der mit statischen Variablen die Konfiguration gespeichert und für sämtliche andere Klassen mittels Vererbung bereitgestellt wird. Der Schritt ist die Gui. Sie besteht aus einer Hauptklasse und Nebenklassen welche von der Hauptklasse erben. Somit habe ich die Guikomponenten und deren Layout und die Listener und die dazugehörigen Funktionen aufgeteilt auf diese Klassen. Die GUIhauptklasse und die GUINebenklassen greifen gegenseitig auf ihre Variablen und Methoden zu. Bisher Funktioniert alles problemlos. Bei der dritten GUINebenklasse gibt es einige Konflikte. Ich möchte beispielsweise ein JPopupMenu erstellen. Das ausgestalten von dem Menu möchte ich wie im Beispiel in einer eigenen Klasse machen und dann diese in meine Hauptgui als fertiges Komponent mit allen Einstellungen und Methoden einfügen. Dies tue ich, in dem ich von der dritten Guinebenklasse ein Objekt in der Hauptguiklasse erzeuge. Hier gibt es nun das Problem:
Da in Java Mehrfachvererbungen nicht gestattet sind kann ich aus der dritten Guinebenklasse nicht auf die Variablen und Methoden der Guihauptklasse und der Configklasse zugreifen. Die Kommunikation und gegenseitige Aufrufen und Interagieren klappt nicht.
Wie sieht bei euch der Aufbau eines Klompexes Programms aus? Oder sollte der Inhalt von der GUI vielleicht statisch sein, damit man keine Vererbung braucht, sondern einfach nur über die Klassennamen sie anspricht? Welche Ansätze hiefür gibt es schon, wo könnte ich darüber lesen?
Vg Erdal
wie würdet ihr bei komplexen Programmen mit aufwendiger GUi den Code auf die Klassen verteilen oder wie die Klassen organisieren?
Ich habe mir hierfür folgendes Schema erstellt, wo ich noch ein wenig Probleme habe. Alle unteren Klassen sind einzeln abgespeichert. Zunächst habe ich eine Mainklasse in der ich die Konfiguration lade und die Gui starte. Auch das speichern der Konfiguration kommt in diese Klasse. Dann gibt es eine Klasse Config in der mit statischen Variablen die Konfiguration gespeichert und für sämtliche andere Klassen mittels Vererbung bereitgestellt wird. Der Schritt ist die Gui. Sie besteht aus einer Hauptklasse und Nebenklassen welche von der Hauptklasse erben. Somit habe ich die Guikomponenten und deren Layout und die Listener und die dazugehörigen Funktionen aufgeteilt auf diese Klassen. Die GUIhauptklasse und die GUINebenklassen greifen gegenseitig auf ihre Variablen und Methoden zu. Bisher Funktioniert alles problemlos. Bei der dritten GUINebenklasse gibt es einige Konflikte. Ich möchte beispielsweise ein JPopupMenu erstellen. Das ausgestalten von dem Menu möchte ich wie im Beispiel in einer eigenen Klasse machen und dann diese in meine Hauptgui als fertiges Komponent mit allen Einstellungen und Methoden einfügen. Dies tue ich, in dem ich von der dritten Guinebenklasse ein Objekt in der Hauptguiklasse erzeuge. Hier gibt es nun das Problem:
Da in Java Mehrfachvererbungen nicht gestattet sind kann ich aus der dritten Guinebenklasse nicht auf die Variablen und Methoden der Guihauptklasse und der Configklasse zugreifen. Die Kommunikation und gegenseitige Aufrufen und Interagieren klappt nicht.
Wie sieht bei euch der Aufbau eines Klompexes Programms aus? Oder sollte der Inhalt von der GUI vielleicht statisch sein, damit man keine Vererbung braucht, sondern einfach nur über die Klassennamen sie anspricht? Welche Ansätze hiefür gibt es schon, wo könnte ich darüber lesen?
Vg Erdal
Code:
class Main extends Config {
public static void loadconfiguration () {
...
}
public static void storeconfiguration() {
...
}
public static void close () {
storeconfiguration();
System.exit(0);
}
public static void main (String[] args) {
loadconfiguration();
Gui_main gm = new Gui_main();
gm.show();
}
}
//////////
class Config {
static int x;
static int y;
}
//////////
class Gui_main extends Config {
...
Gui_3_MyPopupMenu pm = new Gui_3_MyPopupMenu();
public Gui_main {
...
}
public void show () {
...
}
}
//////////
class Gui_1 extends Gui_main {
}
//////////
class Gui_2 extends Gui_main {
}
//////////
class Gui_3_MyPopupMenu extends JPopupMenu {
}