DPI in Windows 7 erkennen

bernd00

Mitglied
Schönen guten Morgen zusammen!

habe eine Frage, vielleicht kann mir jemand helfen.
Ich habe einige JFrames und Labels, Textfelder, Buttons usw. also nichts ungewöhnliches. Mein Problem ist die Schriftgrad Einstellung in Windows 7. Mit einem Schriftgrad von 100% und 125% ist noch alles OK, aber manche User haben mittlerweile die 150% - 200% in Windows 7 gefunden. Ab 150% ist alles murks, die Labels sind alle zu kurz usw.
Wenn ich den Komponenten ein Font mit Schriftgröße zuweise, dann werden die nicht automatisch vergrößert, damit könnte ich die GUI anpassen.

Nur würde ich das gerne nur für die User mit verändertem Schriftgrad machen, kann ich irgendwie im Programm ermitteln welche DPI Auflösung der User gewählt hat?

Danke im Voraus!

MfG
 
Hi
Ich würde an deiner Stelle so vorgehen:
1. keine festen Größen einprogrammieren, d.h. Label, Panels, … werden nicht auf eine Größe (in Pixel) festgelegt. Wenn nötig hilft pack() oder der automatische Zeilenumbruch bei der korrekten Größe für graphische Komponenten.
2. Falls du unbedingt etwas selber zeichnen musst könnte dir
Java:
SwingUtilities.computeStringWidth()
weiter helfen. Einfach immer die Standard-Schriftart verwenden, dann bekommst du keine Probleme.
 
Moin,

danke für den Tip.
Mein Problem ist, dass ich überall die Standardgröße und Schrift genommen habe. Leider ist dann die größe der Panels und Labels nicht breit genug. Wenn ich eine Schriftgröße setze, dann bleibt die auch.
Setze ich ein label auf Größe 11, dann ist die Schrift bei 100% und 150% Schriftgrad gleich groß, lasse ich die Standardgröße wird die Schrift größer. Bei fixen Tabellenspalten und Zeilenhöhen gibt es auch Probleme, dann wird die Schrift breiter als die Spalte, oder höher, was dann ziemlich gequetscht aussieht.

ich guck mal ob ich die GUI geändert bekomme.
 
java.awt.Component hat eine Methode getFont(), die einen Font zurückgibt. Font hat eine Methode getSize() und getSize2D(), diese Größe kannst du einfach mit einem konstanten Wert multiplizieren. Tut das das, was du willst?
 

Neue Beiträge

Zurück