Mini-Menu-Schriften. Ein Problem bei hohen DPI Zahlen

Andiamo

Mitglied
Hallo liebes Forum,

wie die Überschrift schon andeutet, habe ich ein Problem mit meiner Anwendung. Auf einem Windows 8.1 -Rechner beim Kunden, der mit einer hohen DPI fährt, kann das Menu nur mit einer Lupe gelesen werden. Ich müßte die Schrift auf > 80 setzten damit etwas zu sehen ist. Das wiederum ist auf einem "Normalen 72 dpi" Bildschirm überdimensioniert.
Bei Anderen läuft alles problemlos. Egal welches BS.
Die Anwendung ist mit Java 7 / Swing programmiert,an der Gui ist einiges geändert worden. Zwischenzeitlich habe andere L&F ausprobiert, ein Erfolg ist nicht eingetreten.

Gibt es eine Möglichkeit das ganze innerhalb von Swing skalierbar zu machen?

vielen Dank
A.
 
DPI ist ein ewig altes Problem. Du könntest da jetzt erkennungs-algorithmen bauen aber ich vermute das du damit auf dauer nicht glücklich wirst.

Das Problem ist, das "zu klein" oder "zu groß" eine sehr subjektive wahrnehmung ist, von daher würde ich vorschlagen, überpass doch dem User die entscheidung:

Ich würde da den Ansatz fahren eine globale einstellung für die schriftgröße zu integrieren die der user einstellen kann (sehr klein, klein, mittel, groß, sehr groß).

wenn der user diese einstellung ändert, werden einfach alle UIDefaults die im property-namen "font" haben ensprechend vergrößert/verkleinert

damit solltest du das gröbste erschlagen und für die sonderfälle wo die Properties nicht genutzt werden (z.B. eigene Komponenten) musst du händlisch nachsteuern oder auf UIDefaults umstellen
 
Zuletzt bearbeitet:
Danke für Deine Antwort,
in der Richtung habe ich auch schon überlegt. Ich bin am Überlegen wie ich das am schlausten bewerkstelligen kann. Möglich wäre es eine zusätzliche Anwendung, so eine Art Voreinstellungsprogramm, die der User gegebenenfalls öffnet, wenn das Erscheinungsbild des eigentlichen Programms zu klein erscheint.
Hm... Um allen aus dem Weg zu gehen, könnte man in diesem Programm mit Buttons und Grafiken arbeiten.
oder?

netten Gruß
A.
 

Zurück
Oben