Hi-Ho,
ich habe ein JFrame mit verschiedenen Ansichten (z. B. Dateneingabe, Suche, Auswertung, ...). Jenachdem welche Ansicht ausgewählt wurde, bekommt das JFrame eine andere Größe zugewiesen. Die jeweilige Größe für die Ansichten speichere ich in einem Property-File. Wenn jetzt aber das JFrame maximiert ist, so soll das für alle Ansichten gelten, womit wir bei meinem Problem wären.
1.) Mache ich z. B. sowas
habe ich das Problem, dass beim Klick auf "wiederherstellen" die Größe von der letzten Ansicht wiederhergestellt wird, und nicht die der aktuellen Ansicht.
2.) Hier
funktioniert alles wie gewollt, aber die GUI flackert, da zuerst die eigentliche Größe gesetzt, und anschließend erst maximiert wird
3.) Bei diesem Code
ist das JFrame anschließend nicht mehr maximiert, da die Größe überschrieben wird (setze ich mittels JFrame#setSize).
Ich bräuchte jetzt also eine Methode, um dem JFrame eine Wiederherstellungs-Größe zuweisen zu können, die im Falle von einem maximierten JFrame keine Auswirkungen auf das JFrame hat.
Einen WindowStateListener, der beim Wiederherstellen des JFrames die Größe neu setzt, möchte ich nach Möglichkeit vermeiden.
Danke!
ich habe ein JFrame mit verschiedenen Ansichten (z. B. Dateneingabe, Suche, Auswertung, ...). Jenachdem welche Ansicht ausgewählt wurde, bekommt das JFrame eine andere Größe zugewiesen. Die jeweilige Größe für die Ansichten speichere ich in einem Property-File. Wenn jetzt aber das JFrame maximiert ist, so soll das für alle Ansichten gelten, womit wir bei meinem Problem wären.
1.) Mache ich z. B. sowas
Code:
public void change() {
if (getExtendedState() == MAXIMIZED_BOTH) {
// Größe bleibt unverändert
}
else {
// weise neue Größe zu
}
validate();
}
habe ich das Problem, dass beim Klick auf "wiederherstellen" die Größe von der letzten Ansicht wiederhergestellt wird, und nicht die der aktuellen Ansicht.
2.) Hier
Code:
public void change() {
// weise neue Größe zu
if (getExtendedState() == MAXIMIZED_BOTH) {
// maximieren
}
validate();
}
funktioniert alles wie gewollt, aber die GUI flackert, da zuerst die eigentliche Größe gesetzt, und anschließend erst maximiert wird
3.) Bei diesem Code
Code:
public void change() {
if (getExtendedState() == MAXIMIZED_BOTH) {
// maximieren
}
// weise neue Größe zu
validate();
}
ist das JFrame anschließend nicht mehr maximiert, da die Größe überschrieben wird (setze ich mittels JFrame#setSize).
Ich bräuchte jetzt also eine Methode, um dem JFrame eine Wiederherstellungs-Größe zuweisen zu können, die im Falle von einem maximierten JFrame keine Auswirkungen auf das JFrame hat.
Einen WindowStateListener, der beim Wiederherstellen des JFrames die Größe neu setzt, möchte ich nach Möglichkeit vermeiden.
Danke!