Hallo zusammen und ein gesundes neues Jahr!
Ich arbeite gerade an einer GUI, die auf verschiedenen Systemen mit unterschiedlichen Auflösungen und Bildschirmgrößen laufen soll. Die GUI soll in Swing umgesetzt werden. Zudem würde ich den GridBayLayout verwenden, um mir die Elemente wunderbar anzuordnen. Jetzt aber zum Problem....
Beispiel:
GUI wird für/auf einem Full-HD 24 Zoll Bildschirm entworfen und sieht da wunderbar aus. Startet man die GUI auf einem 4k 15 Zoll Bildschirm sind die einzelnen Elemente mit Beschriftung winzig.
Zudem kann man bei einigen OS's einen Skalierungsfaktor einstellen, der das ganze auch noch beeinflussen kann.
Jetzt habe ich überlegt, die Anzeigedaten zu ermitteln und daraufhin meine GUI zu skalieren (Schriftgrößen usw.). Die Anordnung der Elemente übernimmt ja zu Glück der Layoutmanager.
Mit Toolkit kann man ja über getScreenSize und getScreenResolution einige Anzeigedaten ermitteln. Ich habe mir mal die Werte für mein Bildschrim 15,6'' 3840x2160 Win10 ausgeben lassen:
Bei 200% Skalierung bekomme ich:
aufloesung = 192
groesseY = 2160
groesseX = 3840
Bei 100% Skalierung bekomme ich:
aufloesung = 192
groesseY = 4320
groesseX = 7680
Warum wird mir eine falsche Auflösung ausgegeben? Müssten doch 282 sein. Und wieso verändert die Skalierung die Punkteanzahl?
Hat jemand Erfahrung mit so einem Problem? Was haltet ihr von meinem Lösungsansatz?
Viele Frage...
Danke schonmal im voraus
Ich arbeite gerade an einer GUI, die auf verschiedenen Systemen mit unterschiedlichen Auflösungen und Bildschirmgrößen laufen soll. Die GUI soll in Swing umgesetzt werden. Zudem würde ich den GridBayLayout verwenden, um mir die Elemente wunderbar anzuordnen. Jetzt aber zum Problem....
Beispiel:
GUI wird für/auf einem Full-HD 24 Zoll Bildschirm entworfen und sieht da wunderbar aus. Startet man die GUI auf einem 4k 15 Zoll Bildschirm sind die einzelnen Elemente mit Beschriftung winzig.
Zudem kann man bei einigen OS's einen Skalierungsfaktor einstellen, der das ganze auch noch beeinflussen kann.
Jetzt habe ich überlegt, die Anzeigedaten zu ermitteln und daraufhin meine GUI zu skalieren (Schriftgrößen usw.). Die Anordnung der Elemente übernimmt ja zu Glück der Layoutmanager.
Mit Toolkit kann man ja über getScreenSize und getScreenResolution einige Anzeigedaten ermitteln. Ich habe mir mal die Werte für mein Bildschrim 15,6'' 3840x2160 Win10 ausgeben lassen:
Java:
groesseY = Toolkit.getDefaultToolkit().getScreenSize().height;
groesseX = Toolkit.getDefaultToolkit().getScreenSize().width;
aufloesung = Toolkit.getDefaultToolkit().getScreenResolution();
Bei 200% Skalierung bekomme ich:
aufloesung = 192
groesseY = 2160
groesseX = 3840
Bei 100% Skalierung bekomme ich:
aufloesung = 192
groesseY = 4320
groesseX = 7680
Warum wird mir eine falsche Auflösung ausgegeben? Müssten doch 282 sein. Und wieso verändert die Skalierung die Punkteanzahl?
Hat jemand Erfahrung mit so einem Problem? Was haltet ihr von meinem Lösungsansatz?
Viele Frage...
Danke schonmal im voraus