Kristallkugel
Greifenfeder
Einhorn Zauberstab
Alraune
Pegasus im Sonnenuntergang

Look and Feel setzten

Einleitung

Das Erscheinungsbild und das Anfühlen einer Java Swing Applikation wird auch als Look and Feel bezeichnet. Das Look and Feel einer Java-Applikation kann nach belieben selbst erstellt oder durch ein vorhandenes ausgetauscht werden.

Aufwand  Schwierigkeitsgrad 1 Schwierigkeitsgrad 1 Schwierigkeitsgrad 1 Schwierigkeitsgrad 1 Schwierigkeitsgrad 1

Codebeispiel

Im Java Developer Kit (JDK) sind einige Look and Feels bereits vorhanden. Das bekannte Swing-Standard-Look and Feel heisst "Ocean" - früher auch "Metal" genannt.

In folgendem Beispiel wird das Look and Feel auf "Nimbus" gesetzt, das seit Java Version 6.0 vorhanden ist.
Das Look and Feel muss unbedingt zu Beginn der Applikation, im Event Dispatch Thread, festgelegt werden:

  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

      @Override
      public void run() {
        setLookAndFeel();
        // Erst jetzt kommt weiterer Code
      }
  }
Alle Look and Feel Einstellungen werden über die Klasse UIManager geregelt. Über die setLookAndFeel Methode kann der Klassenname des Look and Feels mitgegeben werden.
In diesem Beispiel wird gezeigt, wie ein installiertes Look and Feel (wie zum Beispiel "Nimbus") über den Namen gesucht und gesetzt wird:

  /**
   * Setzt das Nimbus-Look and Feel für die Applikation.
   */

  public void setLookAndFeel() {
    try {
      UIManager.LookAndFeelInfo[] installedLookAndFeels = UIManager.getInstalledLookAndFeels();
      for(UIManager.LookAndFeelInfo lookAndFeel: installedLookAndFeels) {
        if (lookAndFeel.getClassName().contains("Nimbus")) {
          UIManager.setLookAndFeel(lookAndFeel.getClassName());
          return;
        }
      }
    }
    catch (Exception e) {
      System.err.println("Look and Feel konnte nicht gesetzt werden");
    }
  }

Einige Look and Feel Strings

  • javax.swing.plaf.metal.MetalLookAndFeel
  • com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
  • com.sun.java.swing.plaf.motif.MotifLookAndFeel
  • com.sun.java.swing.plaf.windows.WindowsLookAndFeel
  • com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel
  • WindowsLookAndFeel.class.getName()

Externe Look and Feel