E
erstmal nur Gast
Gast
Hi,
Ich möchte, dass der User zunächst angibt, wieviele Objekte (sagen wir mal X Stück) mit entsprechenden Parametern er verwalten möchte.
Diese Parametereingaben sollen über eine Swing Benutzerschnittstelle geschehen. Dafür soll die gleiche Oberfläche nun X Mal nacheinander auftauchen. Ich habe dies nun gelöst, indem der User am Ende seiner Eingaben auf einen Okay-Nutton klingt, die Daten dadurch gespeichert werden und dann, wenn der Zähler X noch nicht erreicht hat, alle Texteingabefelder wieder gelöscht werden und somit die nächsten Eingabe in der nun wieder leeren Eingabefelder erfolgen können. (Für das Speichern gibt der User jedesmal den neuen Ordner an, in dem die Werte für das Objekt gespeichert werden.) Nun wäre das ganze aber eigentlich einfacher, wenn ich einfach die Oberfläche als Objekt (also eigene Klasse) anlege und dieses dann X-Mal aufrufe. Problem: Das funktioniert zwar auch, aber die Oberflächen kommen nicht nacheinander, sondern gleichzeitig. Konkret: Schön wäre es, wenn der gesamte Programmablauf stoppt, bis der Okay-Button gedrückt wurde und erst dann, mit dem okay Button die Eingabemaske (also der Frame) verschwindet und die neue, d.h. das gleiche Objekt nochmal erzeugt wird und somit neu erscheint. Das wäre sehr schön OO-programmiert. Also, ich rufe ein Objekt auf, dieses erzeugt den entsprechenden Frame, der User macht seine Eingaben, drückt okay, dann verschwindet das Objekt wieder und damit auch der Frame - und sofern der Zähler noch nicht X erreicht hat, wird noch einmal so ein Objekt erzeugt und User gibt wieder ein.
Das würde dann so aussehen, dass in der Main Methode zunächst die Anzahl (=X Mal)der zu verwaltenden Objekte angegeben wird, dann eine Schleife X Mal durchläuft und nacheinander X mal das Objekt aufruft, das sie Swing Eingabeoberfläche erzeugt. Das dürfte ein sehr viel einfacherer Code sein, als was ich jetzt habe. Ist das verständlich, was ich möchte? ICh würde dann also die Engabemaske für die Objektparameter als eigene Klasse haben. Geht das? Das Problem ist eben, dass die Main Methode stoppen müsste, wenn eine Swing-Oberfläche auftaucht, und zwar solange bis der Okay Button betätigt würde, dh. die Oberfläche musste sich selbst durch den ActionListener über den Okay-Button schließen, ohne dass das Programm exit macht und natürlich müsste, wenn der erste Frame auftaucht, dieser alle weiteren Frames unterbinden, bis der erste Frame geschlossen wurde. Zugegeben, etwas schwieirg zu beschreiben...
Vielleicht mal konkret: Kann ich in einer Main Methode überhaupt einen Swing-Frame erzeugen, der dann die nachfolgenden Frames unterdrückt. bzw die Main Methode so lange stoppt, bis der erste Frame geschlossen wird? Ein Verwalten über Cardlayout dürfte nicht funktionieren, wenn ich die Eingabemaske als eingene Klasse definiere und DAS GLEICHE Objekt eben mehrmal nacheinander aufrufe. Das Objekt ist ja nur ein selbst definiertes Objekt, das im Aufruf (oder aber auch über zusätzlich definierten Methodenaufruf am Objekt (macht ja kaum einen Unterschied)) die Oberfläche erzeugt und für die main Methode ist dieses Objekt gar kein Swing-Frame.
Viele Grüße,
Ich möchte, dass der User zunächst angibt, wieviele Objekte (sagen wir mal X Stück) mit entsprechenden Parametern er verwalten möchte.
Diese Parametereingaben sollen über eine Swing Benutzerschnittstelle geschehen. Dafür soll die gleiche Oberfläche nun X Mal nacheinander auftauchen. Ich habe dies nun gelöst, indem der User am Ende seiner Eingaben auf einen Okay-Nutton klingt, die Daten dadurch gespeichert werden und dann, wenn der Zähler X noch nicht erreicht hat, alle Texteingabefelder wieder gelöscht werden und somit die nächsten Eingabe in der nun wieder leeren Eingabefelder erfolgen können. (Für das Speichern gibt der User jedesmal den neuen Ordner an, in dem die Werte für das Objekt gespeichert werden.) Nun wäre das ganze aber eigentlich einfacher, wenn ich einfach die Oberfläche als Objekt (also eigene Klasse) anlege und dieses dann X-Mal aufrufe. Problem: Das funktioniert zwar auch, aber die Oberflächen kommen nicht nacheinander, sondern gleichzeitig. Konkret: Schön wäre es, wenn der gesamte Programmablauf stoppt, bis der Okay-Button gedrückt wurde und erst dann, mit dem okay Button die Eingabemaske (also der Frame) verschwindet und die neue, d.h. das gleiche Objekt nochmal erzeugt wird und somit neu erscheint. Das wäre sehr schön OO-programmiert. Also, ich rufe ein Objekt auf, dieses erzeugt den entsprechenden Frame, der User macht seine Eingaben, drückt okay, dann verschwindet das Objekt wieder und damit auch der Frame - und sofern der Zähler noch nicht X erreicht hat, wird noch einmal so ein Objekt erzeugt und User gibt wieder ein.
Das würde dann so aussehen, dass in der Main Methode zunächst die Anzahl (=X Mal)der zu verwaltenden Objekte angegeben wird, dann eine Schleife X Mal durchläuft und nacheinander X mal das Objekt aufruft, das sie Swing Eingabeoberfläche erzeugt. Das dürfte ein sehr viel einfacherer Code sein, als was ich jetzt habe. Ist das verständlich, was ich möchte? ICh würde dann also die Engabemaske für die Objektparameter als eigene Klasse haben. Geht das? Das Problem ist eben, dass die Main Methode stoppen müsste, wenn eine Swing-Oberfläche auftaucht, und zwar solange bis der Okay Button betätigt würde, dh. die Oberfläche musste sich selbst durch den ActionListener über den Okay-Button schließen, ohne dass das Programm exit macht und natürlich müsste, wenn der erste Frame auftaucht, dieser alle weiteren Frames unterbinden, bis der erste Frame geschlossen wurde. Zugegeben, etwas schwieirg zu beschreiben...
Vielleicht mal konkret: Kann ich in einer Main Methode überhaupt einen Swing-Frame erzeugen, der dann die nachfolgenden Frames unterdrückt. bzw die Main Methode so lange stoppt, bis der erste Frame geschlossen wird? Ein Verwalten über Cardlayout dürfte nicht funktionieren, wenn ich die Eingabemaske als eingene Klasse definiere und DAS GLEICHE Objekt eben mehrmal nacheinander aufrufe. Das Objekt ist ja nur ein selbst definiertes Objekt, das im Aufruf (oder aber auch über zusätzlich definierten Methodenaufruf am Objekt (macht ja kaum einen Unterschied)) die Oberfläche erzeugt und für die main Methode ist dieses Objekt gar kein Swing-Frame.
Viele Grüße,