Pour définir un look and feel, utilisez la méthode: UIManager.setLookAndFeel(LookAndFeel l ) avec le nom de la classe de LookAndFeel comme argument.
Après le changement, il faut mettre à jour l'arborescence des composants en appelant la méthode SwingUtilities.updateComponentTreeUI(frame);
Exemple
Dans cet exemple, on est entrain de déclarer une constante LOOKANDFEEL qui va contenir l'une des valeurs valides suivantes: Metal, System, Motif et GTK. Ce code marche sous Eclipse et Netbeans.
import javax.swing.*;Sortie:
import java.awt.*;
public class LookAndFeelTest extends JFrame{
public LookAndFeelTest(){
//initialiser le lookandfeel
initLookAndFeel();
//etre sure que l'apprence a été bien appliquée
JFrame.setDefaultLookAndFeelDecorated(true);
//Créer et configurer la fenetre
JFrame frame = new JFrame("SwingApp");
Component contents = createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.updateComponentTreeUI(frame);
//afficher la fenetre
frame.pack();
frame.setVisible(true);
}
/*
* Spécifier l'apparence lookandfeel à utiliser en définissant
* la constante LOOKANDFEEL
*/
final static String LOOKANDFEEL = "Metal";
public Component createComponents() {
JButton button = new JButton("Bouton");
JLabel label = new JLabel(LOOKANDFEEL);
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(button);
panel.add(label);
panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
return panel;
}
private static void initLookAndFeel() {
String lookAndFeel = null;
if(LOOKANDFEEL != null) {
switch(LOOKANDFEEL){
case "Metal":lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
break;
case "System":lookAndFeel = UIManager.getSystemLookAndFeelClassName();
break;
case "Motif":lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
break;
case "GTK":lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
break;
}
try {
UIManager.setLookAndFeel(lookAndFeel);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new LookAndFeelTest();
}
}
System
Si vous voulez garder le thème original de votre système d’exploitation comme dans cet exemple qui récupère le l'apparence de Windows 7.
lookAndFeel = UIManager.getSystemLookAndFeelClassName();Sortie:
Motif
lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";Sortie:
Références:
Documentation Oracle: How to set Look and Feel.
Developpez.net: Java GUI:Look & Feel
Commentaires (0)
Laisser un commentaire
Connectez-vous pour commenter
Rejoignez la discussion et partagez vos connaissances avec la communauté
Chargement des commentaires...