bonjour,
j'essaie de modifier le look and feel de mon appli et (bien évidemment puisque je suis là ...) ça ne marche pas. Après parcours de l'historique du forum sur ce sujet, je n'ai rien trouvé donc voila ce que je fais :
une classe qui étend le MetalButtonUI :
mon nouveau L&F
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class MyButtonUI extends MetalButtonUI { private static final MyButtonUI mirorButtonUI= new MyButtonUI(); public MyButtonUI() { super(); } public void paint(Graphics g, JComponent c) { //peu importe ce code mais c'est la que je ferai mes modifs sur les boutons } public static ComponentUI createUI(JComponent c) { return mirorButtonUI; }
et enfin l'utilisation de tout ça dans ma classe qui créé la JFrame
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class MyLookAndFeel extends MetalLookAndFeel { protected void initClassDefaults( UIDefaults table ) { super.initClassDefaults( table ); table.put( "ButtonUI", MyButtonUI.class.getName() ); } public boolean isNativeLookAndFeel() { return false; } public boolean isSupportedLookAndFeel() { return true; }
Bon j'ai du rater qqchose car à chaque fois j'ai une erreur à l'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part UIManager.setLookAndFeel(new MirrorLookAndFeel());
Petite précision : si j'utilise le code ci-dessous, mon button est bien modifié fonction de ce que je mets dans le paint de MyButtonUI ...UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=null,paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Journal,defaultCapable=true]
Merci d'avance pour votre aide et SVP soyez indulgent, je débute avec le L&F ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 BoutonBandeauAccueil = new JButton("Accueil"); BoutonBandeauAccueil.setUI(new MyButtonUI());
Partager