# GUI skalieren



## acevik94 (6. Nov 2017)

Hallo zusammen,
Ich habe zu Hause 2 Notebooks die unterschiedliche Auflösungen haben.
Das eine hat einen 4k Monitor und das andere hat die max. Auflösung 1366x768.
Nun... gibt es eine Möglichkeit dem Programm zu sagen, dass es den JFrame bzw.
die Komponente so skalieren soll, dass man sie noch erkennt?
Ps: Ja, ich kann eine int Variable "Scale" deklarieren und alle Grössen mit Scale multiplizieren
      aber das finde ich etwas "schlecht programmiert". Gibt es andere Möglichkeiten?

Gruss


----------



## truesoul (7. Nov 2017)

Also wenn es um ein Fullscreen geht dann: 


```
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
```


----------



## dzim (7. Nov 2017)

JEP 263 zu Java 9 beschreibt explizit HiDPI Verbesserungen, den darum geht es hier, nicht um full screen.
https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F6

Ich glaube, du kannst für Swing explizit System properties setzen.
JavaFX skaliert automatisch. Für Java 8 ging das im Wesentlichen schon auf Windows und Mac, solange die Bildschirme, wenn mehrere angeschlossen sind, alle die selbe Auflösung verwenden.
Der Prozess sollte in Java 9 verbessert worden sein und ich dachte auch für Swing automatisch geschehen.
Siehe https://stackoverflow.com/questions/26877517/java-swing-on-high-dpi-screen

Der folgende Artikel beschäftigt sich auch damit und erwähnt die Java.exe Flags.
http://news.kynosarges.org/2015/06/29/javafx-dpi-scaling-fixed/
Les mal die erwähnten Mailinglisten...

Grüsse


----------



## acevik94 (7. Nov 2017)

Vielen Dank für die Antworten. Ich lese mir die Artikel durch.
Ich melde mich wieder, falls es nicht klappt


----------

