salut,
J'ai une application composée d'une JFrame principale qui contient un Panel dans lequel je charge d'autre panels a partir d'un menu.
J'ai telechargé un code sur internet qui permet de modifier le look and feel de mon application. Quand je met le code dans le main de ma JFrame tout marche impecablement. Mais moi, j'ai ajouter une JDialog qui normalement devrait permettre a l'utilisateur de changer le look and feel a partir ce cette dialog.
Mon problème c'est que le changement n'est pas immédiat. Il faut je clique sur le menu et de charger un autre panel pour voir le look and feel. Et encore, il ne s'applique qu'au panel et non a toute l'application y compris le JFrame
Donc voila, comment je fait pour appliquer le look and feel a toute l'application et de le mettre a jour ??
Voici le code
Merci pour votre aide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String themepack = "theme\\"+jComboBox1.getSelectedItem().toString(); try { if (themepack.endsWith(".xml")) { SkinLookAndFeel.setSkin( SkinLookAndFeel.loadThemePackDefinition(new File(themepack).toURL())); UIManager.setLookAndFeel("com.l2fprod.gui.plaf.skin.SkinLookAndFeel"); } else if (themepack.startsWith("class:")) { String classname = themepack.substring("class:".length()); SkinLookAndFeel.setSkin((Skin)Class.forName(classname).newInstance()); UIManager.setLookAndFeel("com.l2fprod.gui.plaf.skin.SkinLookAndFeel"); } else if (themepack.startsWith("theme:")) { String classname = themepack.substring("theme:".length()); MetalTheme theme = (MetalTheme)Class.forName(classname).newInstance(); MetalLookAndFeel metal = new MetalLookAndFeel(); MetalLookAndFeel.setCurrentTheme(theme); UIManager.setLookAndFeel(metal); } else { SkinLookAndFeel.setSkin(SkinLookAndFeel.loadThemePack(themepack)); UIManager.setLookAndFeel("com.l2fprod.gui.plaf.skin.SkinLookAndFeel"); } if (OS.isOneDotFourOrMore()) { java.lang.reflect.Method method = JFrame.class.getMethod( "setDefaultLookAndFeelDecorated", new Class[] { boolean.class }); method.invoke(null, new Object[] { Boolean.TRUE }); method = JDialog.class.getMethod( "setDefaultLookAndFeelDecorated", new Class[] { boolean.class }); method.invoke(null, new Object[] { Boolean.TRUE }); } }catch (Exception e) { e.printStackTrace(); } }
Partager