Zeigen JDialog in der Windows-Taskleiste
Ich versuche, die Anzeige einer JDialog
im Windows. Wie zeige ich eine JDialog
(wie JFrame
) auf meinem Windows-Taskleiste?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich versuche, die Anzeige einer JDialog
im Windows. Wie zeige ich eine JDialog
(wie JFrame
) auf meinem Windows-Taskleiste?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen dialog selbst kann nicht über einen task-bar-Eintrag, aber Sie können, bauen einen Rahmen, der keine sichtbaren Auswirkungen, und verwenden Sie es als ein Elternteil für den dialog. Dann wird es Aussehen wie das Dialogfeld task-bar-Eintrag. Der folgende code zeigt Ihnen, wie es geht:
Fand ich die Antwort auf Ihre Frage, denn ich hatte das umgekehrte problem. Ich hatte einen JDialog, dass war die Ansicht in der Taskleiste und es dauerte ewig, um herauszufinden, wie um zu verhindern, dass es von der Anzeige. Stellt sich heraus, wenn Sie an einem
null
Eltern an den Konstruktor JDialog, Ihren dialog in der Taskleiste.Den cast zu
java.awt.Dialog
ist zu vermeiden, die mehrdeutig Konstruktor.Window
. Beide arbeiten. Dies scheint zu sein, das beabsichtigte design. Tun Sie dies eher als Definition Ihrer eigenen Klasse.Dialoge sind in der Taskleiste erscheint, wenn Sie keinen Besitzer. Die Möglichkeit zu haben, Besitzer Dialoge Hinzugefügt AWT in Java 6. Leider, in dieser Zeit, die Swing-Klasse
JDialog
hatte bereits Konstruktoren mit einem vorgegebenen Verhalten in Bezug auf fehlende odernull
Eigentümer, arbeiten rund um die Einschränkungen der vorherigen Java-Versionen. Dieses Verhalten kann nicht geändert werden wegen der Kompatibilität sorgen.So, wenn Sie die alten Konstruktoren
JDialog()
- und diese Annahme eineFrame
argument, Sie zeigen das Verhalten kompatibel mit den älteren Versionen, erstellen eine unsichtbare dummy -Frame
als Eigentümer, falls keiner angegeben ist. Also die Dialoge, die so erstellt werden, immer im Besitz von einem Rahmen.Dies ist auch eingebunden in die Dokumentation:
Die benannte Konstruktoren sind neue Java 6, als die Möglichkeit zu haben, ein Dialog im Besitz einer anderen
Dialog
oder eineWindow
Hinzugefügt wurde in dieser version auch. Da diese neuen Konstruktoren nicht kompatibel zu einer früheren version, die Sie unterstützen können Besitzer Dialoge. Dies ist der Grund, warum die Lösung in dieser Antwort funktioniert.Können Sie auch den Konstruktor nehmen, ein
ModalityType
wie in diese Antwort als dieser Konstruktor auch zwei neue Java 6 und unterstützt Besitzer Dialoge. Aber Sie brauchen nicht zum erstellen einer Unterklasse vonJDialog
dieser Konstruktor.