Changement de couleur et de police d'un élément en surbrillance dans un JMenu [Résolu]

piero_pix 3 Messages postés lundi 19 décembre 2005Date d'inscription 9 mars 2006 Dernière intervention - 8 mars 2006 à 18:46 - Dernière réponse : piero_pix 3 Messages postés lundi 19 décembre 2005Date d'inscription 9 mars 2006 Dernière intervention
- 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.
Afficher la suite 

4 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 8 mars 2006 à 22:08
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
piero_pix 3 Messages postés lundi 19 décembre 2005Date d'inscription 9 mars 2006 Dernière intervention - 9 mars 2006 à 10:01
0
Utile
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.
Commenter la réponse de piero_pix
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 9 mars 2006 à 10:35
0
Utile
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
Commenter la réponse de Twinuts
piero_pix 3 Messages postés lundi 19 décembre 2005Date d'inscription 9 mars 2006 Dernière intervention - 9 mars 2006 à 11:03
0
Utile
Merci WORA pour toutes ces infos.
Commenter la réponse de piero_pix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.