2012-04-03 14 views
2

Ich habe gesucht, ob es möglich ist, die globale Größe aller Komponenten in Nimbus Look and Feel zu ändern.Nimbus Look and Feel JAVA - Globale Größe der Komponenten ändern

Es gibt eine tutorial für die Dimensionierung einer Komponente; aber nicht für alle Komponenten.

Ich habe so etwas wie dies gefunden: 6, 2008, um 11.29 Uhr http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/

November Leider Matt dort für Größe keine globale Einstellung ist, dass wieder etwas, das wir als über das Hinzufügen von einfiel es scheint sinnvoll.

aber dieser Beitrag ist von mehreren Jahren und vielleicht hat sich etwas geändert. Irgendwelche Ideen?

Danke.

Antwort

1

Ich glaube nicht, dass es einen nimbusspezifischen Weg gibt, dies zu erreichen. JXLayer Projekt hat eine Implementierung, um die gesamte Benutzeroberfläche in verschiedene Maßstäbe zu verwandeln - Dies kann auf jedes Aussehen und Verhalten angewendet werden. Sie können darauf überprüfen this demo

+0

Ok, danke für deinen Rat, aber wenn es nicht einfach Art und Weise ist, dass in Nimbus zu erreichen (ohne 3rd-Party-Bibliotheken wie JXLayer zu verwenden) - Ich muss nach anderem suchen. Irgendwelche (frei für kommerzielle Nutzung) Empfehlung? –

1

Es kann wie folgt geschehen:

UIManager.setLookAndFeel(new NimbusLookAndFeel()); 

    final SynthStyleFactory styleFactory = SynthLookAndFeel.getStyleFactory(); 
    SynthLookAndFeel.setStyleFactory(new SynthStyleFactory() { 
    @Override 
    public SynthStyle getStyle(JComponent c, Region id) { 
     c.putClientProperty("JComponent.sizeVariant", "large"); 
     return styleFactory.getStyle(c, id); 
    } 
    }); 
0

Die unten Antwort ist durch @Stijn mit der Änderung in der Initialisierung Ansatz ist eine Erweiterung der vorherigen Antwort, wie empfohlen in der Arzt. Unter Angabe der Links nimbuslaf und swing tutorials - size

Version Hinweis: Stellen Sie den Nimbus Look and Feel explizit durch die UIManager.setLookAndFeel Methode aufgerufen, weil nicht alle Versionen oder Implementierungen von Java SE 6 Unterstützung Nimbus. Darüber hinaus wurde der Speicherort des Nimbus-Pakets zwischen den Releases JDK 6 Update 10 und JDK 7 von geändert. Iteration durch alle installierten Look and Feel Implementierungen ist ein robuster Ansatz, denn wenn Nimbus nicht verfügbar ist, wird das Standard-Look & Feel verwendet.

try { 
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { 
    if ("Nimbus".equals(info.getName())) { 
     UIManager.setLookAndFeel(info.getClassName()); 
     try { 
      Constructor c = Class.forName("MyStyleFactory").getConstructor(String.class); 
      c.newInstance("small"); // regular, mini, small or large 
     } catch (ExceptionInInitializerError eiie){ 
     // 
     } catch (LinkageError le){ 
     // 
     } catch (ClassNotFoundException cnfe){ 
     // 
     } 
     break; 
    } 
    } 
} catch (Exception e) { 
    // If Nimbus is not available, you can set the GUI to another look and feel. 
} 

Datei: MyStyleFactory.java

public class MyStyleFactory extends SynthStyleFactory { 
    protected static String variant = "regular"; 

    final SynthStyleFactory styleFactory = SynthLookAndFeel.getStyleFactory(); 

    static { 
     SynthLookAndFeel.setStyleFactory(new MyStyleFactory(variant)); 
    } 

    public MyStyleFactory(String variant) { 
     if (variant.equals("regular") || variant.equals("mini") 
       || variant.equals("small") || variant.equals("large")) 
      MyStyleFactory.variant = variant; 
    } 

    @Override 
    public SynthStyle getStyle(JComponent c, Region id) { 
     c.putClientProperty("JComponent.sizeVariant", variant); 
     return styleFactory.getStyle(c, id); 
    } 
} 
Verwandte Themen