Bonjour à tous !
J'ai fait une recherche sur google puis sur ce forum, mais je n'arrive pas à trouver réponse à ma question. Voyez-vous, j'ai une JCheckbox dont je personnalise les icones afin qu'elle affiche une étoile pleine ou vide selon qu'elle est sélectionnée ou non. Sous Windows, ça marche sans souci ! Mais sous Linux, mon image ne s'affiche juste pas... J'utilise JDK 7 sur les deux OS.
Donc voilà, si je labellise bien ma JCheckbox, je vois le texte mais aucune icone, pas même celle par défaut (si j'ai fait les setIcon, setSelectIcon etc).
C'est vraiment bizarre. Pourquoi cela fonctionnerait-il sous WIndows 7 et pas Linux ? Mystère...
Mes icones sont des png, et le chargement se passe sans soucis car il est fait dans une classe séparée (ProgramIcons), et si je veux afficher l'icone dans un bouton (new JButton("un bouton", ProgramIcons.favEnabled)), elle s'affiche bien. J'ai :
Pour le chargement de mes images. Ensuite, je crée ma checkbox comme ceci dans mon programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class ProgramIcons { //... public static final ImageIcon favEnabledIcon = new ImageIcon("img/favEnabled.png"); public static final ImageIcon favPressedIcon = new ImageIcon("img/favPressed.png"); public static final ImageIcon favDisabledIcon = new ImageIcon("img/favDisabled.png"); public static final ImageIcon favDisabledSelIcon = new ImageIcon("img/favDisabledSel.png"); private ProgramIcons() {} }
Et comme je vous l'ai dit : sous Windows, nickel, sous linux, il n'y a rien d'affiché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 JCheckbox favToggleComponent = new JCheckBox(""); favToggleComponent.setIcon(ProgramIcons.favDisabledIcon); favToggleComponent.setSelectedIcon(ProgramIcons.favEnabledIcon); favToggleComponent.setPressedIcon(ProgramIcons.favPressedIcon); favToggleComponent.setDisabledIcon(ProgramIcons.favDisabledIcon); favToggleComponent.setDisabledSelectedIcon(ProgramIcons.favDisabledSelIcon);
J'espère que vous pourrez m'aider...
Bien à vous,
Hemophilius
EDIT : J'ai oublié de vous dire, mais je charge d'autres images de la même façon (dans le "//...") et je les affiche dans des boutons sans aucun problème sous Linux comme sous Windows, mais dans des boutons... Quelle que soit l'image que je sélectionne pour l'icone de ma checkbox, rien n'apparait.
Partager