Changement de couleur et de police d'un élément en surbrillance dans un JMenu

Résolu
piero_pix Messages postés 3 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 9 mars 2006 - 8 mars 2006 à 18:46
piero_pix Messages postés 3 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 9 mars 2006 - 9 mars 2006 à 11:03
Bonjour à tous,

j'ai écrit une applet contenant un JPopupMenu qui reçoit un flux à parser contenant tous les éléments du menu. Ce menu contient des sous-menus (JMenu) et des items (JMenuItem).
Pour l'affichage du menu, la récupération de la sélection lors du clic : tout est ok.

J'ai également ajouté des fonctionnalités pour modifier la police, la couleur du texte, la couleur du fond des différents éléments du JPopupMenu, là encore tout fonctionne.

Le problème survient quand je veux modifier la couleur du fond et la couleur du texte d'un élément en surbrillance (un élément qui a le focus). Je pensais surcharger les paramètres par défaut en remplaçant le FocusListener du menu par le mien mais le FocusListener par défaut ne fais que déclencher l'actualisation de l'affichage.
J'aimerais pouvoir garder les comportements par défaut du menu mais surcharger uniquement les propriétés appliquées pour la surbrillance d'un élément (police, couleur du texte et du fond).

J'ai commencé à regarder la javadoc des différents ComponentUI et MenuSelectionManager mais je n'ai pas encore trouvé.

Merci pour votre aide.

4 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 mars 2006 à 22:08
Salut,



pour modifier les couleurs des composants il faut passer par UIManager genre pour ton cas

UIManager.put("MenuItem.selectionBackground", Color.BLACK);

UIManager.put("MenuItem.selectionForeground", Color.WHITE);

WORA
3
piero_pix Messages postés 3 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 9 mars 2006
9 mars 2006 à 10:01
Merci beaucoup, c'est exactement ce que je voulais.
J'ai affecté les paramètres voulus au début de la construction du menu et tout est nickel.

Je me demandais juste où trouver la liste des caractérisitiques disponibles pour le UIManager, du style "MenuItem.selectionBackground".

Encore merci WORA.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 mars 2006 à 10:35
Salut,



tu auras toute la liste avec ce petit bout de code



import java.util.Enumeration;



import javax.swing.UIManager;





public class UIPropertiesList {



public static void main(String[] args) {

Enumeration newKeys = UIManager.getDefaults().keys();

while (newKeys.hasMoreElements()) {

System.out.println(newKeys.nextElement());

}



/*Enumeration newValues = UIManager.getDefaults().elements();

while (newValues.hasMoreElements()) {

System.out.println(newValues.nextElement());

}*/

}

}



sinon sur le lien ci-dessous il propose un code affichant un JTable avec la list et les val associées

http://www.java2s.com/ExampleCode/Swing-JFC/ListProperties.htm


WORA
0
piero_pix Messages postés 3 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 9 mars 2006
9 mars 2006 à 11:03
Merci WORA pour toutes ces infos.
0
Rejoignez-nous