Le composant
swing JOptionPane est utilisé pour afficher un message à l'utilisateur. En fonction de l'apparence de son application, le look standard du JOptionPane peut surprendre.
Modifier l'apparence de la boite de dialogue
Sans utiliser un LookAndFeel spécifique, la class MyJOptionPane est un exemple de
customisation de l'apparence de la fenêtre. La technique consiste à modifier à la volée le LookAndFeel par défaut.
A l'aide de UIManager, la class MyJOptionPane modifie les constantes de couleurs du fond de la fenêtre et de la police d'écriture.
import java.awt.Color;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
/**
* Modifier l'aspect d'un JOptionPane
* @author fobec 2010
*/
public class MyJOptionPane {
/**
* Afficher une boite de dialogue noir avec un libellé en blanc
*/
public static void showBlack() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
UIManager.put("OptionPane.background", Color.BLACK);
UIManager.put("Panel.background", Color.BLACK);
UIManager.put("OptionPane.messageForeground", Color.WHITE);
JOptionPane.showMessageDialog(null, "Boite de dialogue avec un fond blanc");
} catch (ClassNotFoundException ex) {
Logger.getLogger(MyJOptionPane.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(MyJOptionPane.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(MyJOptionPane.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(MyJOptionPane.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Exemple pour lancer la boite de dialogue
* @param args
*/
public static void main(String[] args) {
MyJOptionPane.showBlack();
}
}
Liste des constantes LookAndFeelDe nombreuses constantes peuvent être modifiées dans un JOptionPane. La liste complète est par exemple consultable
sur le site java2s.com. Les modifications portent principalement sur les couleurs, les icônes à afficher et le texte des boutons.