Hallo.
Ich arbeite an einer normalen Anwendung die auf einem JInternalFrame abläuft.
Der User kann diverse Auswahlen in einem gesonderten Dialog treffen, diese werden dann in einer Tabelle angezeigt.
Hier kann der User dann auswählen welche der Einträge er in einer Datenbank speichern möchte (werden dem Benutzer dann an anderer stelle gesondert angezeigt).
Es erscheint eine Dialogbox in welcher er die Überschrift für die zu speichernden Daten eintragen kann und dann durch drücken eines Buttons den Speichervorgang startet.
Nun das Problem - das speichern kann je nach Rechner und nach Menge der zuvor gespeicherten Daten etwas länger dauern und solange das speichern andauert soll der Button der zuletzt gedrückt wurde (also der OK-Button für's speichern) als gedrückt markiert bleiben, aber der Benutzer soll nichts weiter machen können.
Das klappt allerdings nur teilweise im Moment - zwar bleibt der Button gedrückt, wenn der Benutzer jedoch während des speicherns auf das unter liegende Formular klickt verschwindet das Dialogelement trotzdem und die Operationen auf den Buttons des Hauptformulars werden nach dem speichern trotzdem ausgeführt (obwohl ich die Buttons schon disabled hatte solange gespeichert wird).
Ich weiß schon das man Dialoge als modal definieren kann, aber irgendwie scheint das nicht recht zu klappen - mein Chef meinte auch schon ich sollte das mal mit Threads zu lösen versuchen, nur ist das noch ziemliches Neuland, aber vor allem denke ich nicht das das was an der Problematik ändern würde, oder?
Ich hoffe ihr versteht was ich meine und jemand hat 'nen Tip wie ich das am besten hinbekomme.
Eigentlich mußt Du doch nur beim Drücken des OK-Buttons ein Flag (boolean) im Hauptprogramm setzen, das verhindert, daß irgendwas gemacht wird.
Wenn das Speicher zu Ende ist, setzt Du das Flag zurück und weiter geht's.
Eigentlich mußt Du doch nur beim Drücken des OK-Buttons ein Flag (boolean) im Hauptprogramm setzen, das verhindert, daß irgendwas gemacht wird.
Wenn das Speicher zu Ende ist, setzt Du das Flag zurück und weiter geht's.
Na aber sollte das nicht auch in der Form funktionieren das ich einfach solange gespeichert wird eben einfach alle Buttons auf dem Hauptformular enabled(false) setze?
Ich arbeite übrigens mit NetBeans - nur falls das in irgendeiner Weise was ändert. :wink:
EDIT: Außerdem soll das Dialogfenster ja auch nicht verschwinden wenn ich während des speicherns auf das Hauptformular klicke - was leider doch passiert....
EDIT (Part2): Okay, warum der Dialog nicht modal ist habe ich schon rausgefunden - ist mein Fehler.
Ich starte ihn nämlich nicht von einem JFrame, sondern von einem JInternalFrame aus und das mag der Dialog ja nicht - wie kann ich jetzt trotzdem ein modales Fenster bekommen, ohne von einem JFrame aus starten zu müssen?
Ja, das ist wohl das Problem - nur das ich eben darauf angewiesen bin mit einem JInternalFrame zu arbeiten - kann man sowas modales nicht selber schreiben?