# "Fast-Vollbild-Modus"? Elegantere Möglichkeiten?



## Kenny1702 (16. Apr 2008)

Ich möchte ein Frame in der Größe des Bildschirms haben, nur die Taskleiste sollte sonst noch sichtbar sein.
Bisher stelle ich es wie folgt an:


```
GraphicsConfiguration gc = getGraphicsConfiguration();
		GraphicsDevice gd = gc.getDevice();
		gd.setFullScreenWindow(this);
		this.setSize(this.getWidth(), this.getHeight()-30);
```

Wenn ich nun jedoch das Frame minimiere und wieder vergrößere, ist es dann Vollbild, also nicht wie davor. Mittels Implementierung eines WindowListeners ließ sich das beheben, aber gibt es nicht vielleicht eine elegantere Möglichkeit?


----------



## Escorter (16. Apr 2008)

Deine lösung funktioniert auch nciht 100%, denn was ist, wenn man, wie zB ich, die Startleiste höher gemacht hat? Dann wird die Startleiste trotzdem überlappt.

Hier habe ich folgenden Code gefunden


```
meinFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
```

Google hilft...

Gruß,
Esco


----------



## XLazarus (16. Apr 2008)

Also wie du schon gesagt hast mittels WindowListener geht das JA.
Da du ja die Minimize- bzw. Maximize Buttons und somit auch diese WindowEvents verwendest, solltest du das auch so lösen.
Wüßte jetzt nicht was daran "unelegant" sein soll?

[edit]
oho stimmt, mit '.setExtendedState(JFrame.MAXIMIZED_BOTH);' geht das ja ganz einfach
[/edit]

lg
XL


----------



## Kenny1702 (16. Apr 2008)

Danke für die Hilfe.

EDIT: Mit der Taskleiste klappt es beim Starten, aber sobald ich das Frame minimiere und wiederherstelle, bringt mir auch this.setExtendedState(MAXIMIZED_BOTH); nichts. 

Mal sehen.


----------



## zilti (16. Apr 2008)

Setze das Frame doch einfach undecorated und maximiere es dann. Selber Effekt, null Problem.


----------



## Oli (16. Jun 2008)

Hallo,

hatte das selbe Problem, aber die Lösung mit undecorated ist nicht wirklich zielführend. Denn die Steuerelemente und den Rahmen hätte ich schon gerne behalten...
Und die Taskleiste ist auch nicht sichtbar.

Gibt´s denn da keine Möglichkeit, wenn ein Frame minimiert und dann wieder maximiert wird, dass die Taskleiste trotzdem erhalten bleibt?

Grüße Oli


----------



## L-ectron-X (16. Jun 2008)

Es gibt eine Methode in Toolkit-Nähe, die die Insets auf dem Bildschirm ermittelt. Ich finde sie jetzt aber gerade nicht in der API-Doc.


----------



## Oli (16. Jun 2008)

Hi L-ectron-X,

schon aber wird denn da die Taskleiste ausgespart?

Oli


----------



## thE_29 (16. Jun 2008)

JFrame.getInsets() ?

Dann via Toolkit die Screensize rauslesen und die Insets davon abziehen!


----------



## L-ectron-X (16. Jun 2008)

Oli hat gesagt.:
			
		

> schon aber wird denn da die Taskleiste ausgespart?


Ja, ich habe damit mal vor einiger Zeit ein Testprogramm gebastelt, ich suche schon die ganze Zeit, wo ich das abgelegt habe, finde es aber nicht. *weitersuch*


----------



## Oli (16. Jun 2008)

Hi,

also so klappt es, schon ein bisschen umständlich, aber naja


```
Insets ins = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
setSize(new Dimension((int)screenDim.getWidth(),(int)screenDim.getHeight()-ins.bottom));
```

Grüße Oli


----------



## Oli (16. Jun 2008)

Ach ja und DANKE !


----------



## L-ectron-X (16. Jun 2008)

getScreenInsets() - genau die meinte ich.


----------



## Wildcard (16. Jun 2008)

Funktioniert aber nicht mit Gnome und einigen anderen WindowManagern.


----------



## L-ectron-X (16. Jun 2008)

Alternativen, Wildcard?


----------



## Wildcard (16. Jun 2008)

Nein, leider nicht. Nur eine sehr hässliche, die es nötig macht Konfigurations-XMLs vom WindowManager einzulesen.
Irgendjemand hat hier mal was gepostet mit dem es angeblich funktionieren soll, wenn ich das noch finden würde...  ???:L


----------



## Wildcard (16. Jun 2008)

Gefunden:

```
// Hier kommt im Netz selten gefundene Zeile: Das sichtbare Rechteck!
    Rectangle _maxBounds = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
```

http://www.java-forum.org/de/topic64266_wahre-nutzbare-bildschirmgr-richtig-zentiert.html
Bin noch auf der Arbeit und danach Fußball schauen...
Wenn ich demnächst dazu komme, versuche ich ob es auch wirklich mit Gnome tut.


----------

