Comment changer l’apparence des Applications Swing?

Le Java Swing nous permet de personnaliser l’interface graphique en changeant l’apparence (L&F). Look définit l’apparence générale des composants et Feel définit leur comportement. Les L&F sont des sous-classes de la classe LookAndFeel et chaque L&F est identifié par son nom de classe complet. Par défaut, le L&F est réglé sur Metal.

Pour définir le L&F, nous pouvons appeler la méthode setLookAndFeel() de la classe UIManager. L’appel à setLookAndFeel doit être effectué avant l’instanciation d’une classe Java Swing, sinon le Swing L&F par défaut sera chargé.
 
 

Exemple:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestLF extends JFrame implements ActionListener 
{
   private JRadioButton w, ml, mf;
   private ButtonGroup groupBtn;
   
   public TestLF() 
   {
      setTitle("Changer l'apparence de mon application Swing");
      w = new JRadioButton("Windows");
      w.addActionListener(this);
      ml = new JRadioButton("Metal");
      ml.addActionListener(this);
      mf = new JRadioButton("Motif");
      mf.addActionListener(this);
      groupBtn = new ButtonGroup();
      groupBtn.add(w);
      groupBtn.add(ml);
      groupBtn.add(mf);
      setLayout(new FlowLayout());
      add(w);
      add(ml);
      add(mf);
      setSize(250, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
      setLocationRelativeTo(null);
   }
   
   @Override
   public void actionPerformed(ActionEvent actionevent) 
   {
      String LookAndFeel;
      if(actionevent.getSource() == w)
         LookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
      else if(actionevent.getSource() == mf)   
         LookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
      else
         LookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
      try {
         UIManager.setLookAndFeel(LookAndFeel);
         SwingUtilities.updateComponentTreeUI(this);
      } catch (Exception e) {
         System.out.println("Erreur lors de la définition du LookAndFeel..." + e);
      }
   }
   public static void main(String args[]) 
   {
      new TestLF();
   }
}

 
 
Sortie: Windows
 

 
Sortie: Metal
 

 
Sortie: Motif
 

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *