Ich stelle eine schnelle und schmutzige Animation mit Swing zusammen. Ich möchte, dass das Fenster maximiert wird. Wie kann ich das machen?
86
Ich stelle eine schnelle und schmutzige Animation mit Swing zusammen. Ich möchte, dass das Fenster maximiert wird. Wie kann ich das machen?
Vorausgesetzt, Sie erweitern JFrame:
public void run() {
MyFrame myFrame = new MyFrame();
myFrame.setVisible(true);
myFrame.setExtendedState(myFrame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
}
JFrame.MAXIMIZED_BOTH
stattdessen.setVisible(true)
vorher ist der Rahmen nicht richtig dimensioniert. Ich habe es vorher und nachhersetExtendedState()
versucht undsetVisible()
muss der Erste sein.JFrame
erbt vonFrame
).Etwas wie
this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);
quelle
|
? Tut es das eine und wenn das fehlschlägt, macht es das andere? Oder geben Sie die Wahl des Programmierers an (dh wählen Sie eine der Optionen A | B für diesen Aufruf aus?). Ich habe diese Syntax noch nie gesehen.Wenn Sie einen JFrame verwenden, versuchen Sie dies
quelle
Wie wäre es mit
JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH)
?quelle
Ich mag diese Version:
quelle
Um JFrame auf Vollbild einzustellen, müssen Sie die
MAXIMIZED_BOTH
Option festlegen , fürMAXIMIZED_VERT | MAXIMIZED_HORIZ
die der Frame jeweils so eingestellt ist, dass er vertikal und horizontal maximiert wirdquelle
Ich habe die Lösungen in diesem und den hier aufgeführten Threads ausprobiert , aber ein einfacher Anruf
setExtendedState(getExtendedState()|Frame.MAXIMIZED_BOTH);
direkt nach dem AufrufsetVisible(true);
funktioniert anscheinend nicht für meine Umgebung (Windows 10, JDK 1.8, meine Taskleiste befindet sich auf der rechten Seite meines Bildschirms). Wenn Sie dies auf diese Weise tun, bleibt links, rechts und unten immer noch ein winziger Raum.Was für mich jedoch funktioniert hat, ist das Aufrufen,
setExtendedState(...
wenn das Fenster aktiviert ist, wie folgt:quelle
Am Ende habe ich diesen Code verwendet:
Diese Option funktionierte am besten von allen Optionen, einschließlich der Unterstützung mehrerer Monitore. Der einzige Fehler, den dies hat, ist, dass der Taskleistenversatz auf allen Monitoren in einigen Konfigurationen verwendet wird.
quelle
Die Antwort von @kgiannakakis ist völlig korrekt, aber wenn jemand an diesem Problem festhält und Java 6 unter Linux verwendet (z. B. Mint 19 Cinnamon), wird der Status MAXIMIZED_BOTH manchmal nicht angewendet.
Sie können versuchen, die pack () -Methode aufzurufen , nachdem Sie diesen Status festgelegt haben.
Codebeispiel:
Dies ist nicht erforderlich, wenn Sie Java 7+ oder Java 6 unter Windows verwenden.
quelle