Java-modal-Fenster mit dem maximieren-Schaltfläche
Wie könnte ich ein Fenster erstellen, die modal-und hat eine maximieren-Schaltfläche?
So ist es möglich, zum erstellen eines modalen JFrame
oder erstellen Sie eine JDialog
mit der Schaltfläche maximieren?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf die meisten look and feels, modal windows (wie
JDialog
) nicht über eine maximieren-Schaltfläche, einfach nur weil Sie nicht sein soll maximiert (oder minimiert) überhaupt.Es ist möglich, mit einigen tricks zum hinzufügen eines
maximise
- Taste, aber es wäre völlig gegen die Art und WeiseJDialog
funktionieren soll.Wenn Sie eine maximieren-Schaltfläche, die beste Lösung wäre mit einer
JWindow
oder eineJFrame
statt einerJDialog
. Diejenigen, die windows-support-Maximierung und Minimierung.WARNUNG: Sie sollte das nicht tun, egal was.
Einen trick, um dies zu tun in
JDialog
:Lösung 1: Getestet auf Windows
Habe ich eine JFrame für das modale Fenster
Lösung 2: Getestet auf Ubuntu
Habe ich ein WindowFocusListener
Hier ist eine Alternative /etwas ausführlichere Antwort.
Versuchen Fehlt Ihnen Die Schaltfläche Maximieren? (ehemals hier). Dies ist ein github-Archiv blog-Artikel und code von Santhosh Kumar Tekturi von der mittlerweile aufgelösten JRoller Website.
Es ist eine komplette utility-Klasse, macht einen Rahmen imitieren ein Dialogfeld, ähnlich wie die anderen Antworten. Es beinhaltet das hinzufügen eines
WindowListener
dem Rahmen zu halten den Rahmen auf der Oberseite der Besitzer und seine Besitzer frame deaktiviert (Achtung: beiwindowClosed
Methode sollte es wohl auch seinframe.removeWindowListener(this);
, und einWindowListener
für die Eigentümer ist, dass der Rahmen auf der Oberseite und entfernen Sie die Zuhörer. Es nutzt auch seine eigenenEventQueue
um die Ereignisse verarbeiten. Hinweis: dies ist eine alte post, so wie oben im code gibt es eventuell neuere APIs für den Umgang mit diesem code besser.Hier ist die Kern-Funktion. Siehe den link für den rest. Hinweis: der code in der repository unterscheidet sich von dem Artikel; ich glaube, das repository ist mehr entwickelt.