Stefan: Schriftgröße allgemein verändern?

Hallo zusammen,

ich schreibe gerade ein kleines Programm.
Nun sollen mehrere Leute mit diesem Programm arbeiten.
Das Problem sind die verschiedenen Auflösungen (von 13" bis 24" Monitor) und dass einer der User eine Sehschwäche hat....

gibt es eine Möglichkeit für die Schriftart für das komplette Programm irgendwo zu hinterlegen, bzw anzupassen?

Aktuell wirkt die Schrift z.B: ein JTree auf 13" extrem riesig, auf einem 24" hingegen tut man sich schon schwer überhaupt noch was zu lesen.....

nun habe ich folgenden Code:

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");  
        Font font = new Font("Arial", Font.PLAIN, 30);  
        Enumeration keys = UIManager.getLookAndFeelDefaults().keys();  
        while (keys.hasMoreElements()) {  
        Object key = keys.nextElement();  
        if (UIManager.getFont(key) != null) {  
            UIManager.put(key, font);  
        }  
        }

das wirkt sich nur leider nicht auf JTable und auch nicht auf JLabel aus. Bei der Menubar werden die Untermenüs z.B: auch nicht geändert :s

Beim TabPanel werden seltsamerweise die Reite nur beim "hoover" effekt größer :s

Normal sollte das doch alles betreffen?

der JTree z.B: wurde geändert

Danke im Voraus!

  1. Hallo,

    Das Problem sind die verschiedenen Auflösungen (von 13" bis 24" Monitor) und dass einer der User eine Sehschwäche hat....
    Aktuell wirkt die Schrift z.B: ein JTree auf 13" extrem riesig, auf einem 24" hingegen tut man sich schon schwer überhaupt noch was zu lesen.....

    Ein 13" Display kann höher auflösen als ein 30" Monitor und umgekehrt. Diese Werte stehen also in keinerlei Relevanz.
    Ebensowenig lässt sich die tatsächliche Größe deines Monitors mittels einer Software feststellen. Die Auflösung hingegen schon und das ist zeitglich der Schlüssel zu deinem Problem.

    nun habe ich folgenden Code:
    ...

    Der falsche Ansatz ist es meiner Meinung nach wohlgemerkt die Schriftgröße über LookAndFeel zu ändern, solltest du es dennoch tun wäre zu beachten:

    Note: If you are going to set the L&F, you should do it as the very first step in your application. Otherwise you run the risk of initializing the Java L&F regardless of what L&F you've requested. This can happen inadvertently when a static field references a Swing class, which causes the L&F to be loaded.

    Sauberer wäre es in jedem GUI element eine variable text größe zu setzen. Diese kannst du dann dynamisch zur bildschirmauflösung oder irgendeinem event skallieren lassen

    LG