Hallo Leute
Ich habe folgendes Problem: Ich habe eine GUI-Anwendung, die hauptsächlich aus fremdprogrammierten Klassen und teilweise aus eigenentwickelten Klassen besteht. Innerhalb dieser Anwendung läuft ein Hintergrundthread, der auf bestimmte Events reagiert und den Benutzer darüber informieren soll (es ist eine Art eMail-Client, ein Event ist z.b. das Ankommen einer neuen Nachricht).
Das Problem dabei: wenn der Benutzer gerade in der Anwendung arbeitet, soll lediglich ein Klang abgespielt werden, ist die Anwendung im Hintergrund soll eine Messagebox gebracht werden. „Hintergrund“ bedeutet dabei, dass der Benutzer gerade mit keiner der Fenster der Anwendung arbeitet. Also nicht nur minimierte Fenster sondern auch Fenster, die von einer anderen Anwendung überlagert sind.
Meine erste Idee war es, zu Prüfen, wer gerade den Focus hat, darüber herauszufinden, zu welchem Fenster das Control gehört und dann das Fenster zu fragen, ob es im Vordergrund ist. Habe allerdings keine praktikable Methode dafür gefunden.
Wäre die Anwendung komplett selbsterstellt, könnte man ja leicht den Code anpassen, um an diese Info zu kommen. Auf den meisten Teil der Anwendung habe ich aber keinen Zugriff, muss also mit Standardmitteln auskommen.
Hat hier jemand eine Lösung für das Problem?
Ach ja, die Randbedingungen:
das Programm läuft auf einem Windows-PC (WinXP), es wird die Sun Java VM 1.4.2_03 verwendet. Ein Upgrade auf eine neuere VM ist derzeit aus systemtechnischen Gründen nicht möglich (schwer zu erklären also bitte nicht fragen). Die Anwendung arbeitet mit normalen Swing-Klassen. Das ganze ist eine stand-alone Anwendung, kein Applet.
lg
Erwin