IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

UIManager: récupérer le préfixe associé à un objet


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut UIManager: récupérer le préfixe associé à un objet
    J'essaye de faire un système de validation formulaire swing.
    Quand un champ est mal renseigné, j'affiche un message, donne le focus au composant et lui change son background.
    Ensuite quand l'utilisateur rentre une donné correct je voudrais rétablir le background de façon générique.

    Par exemple pour un JTextField je fait

    el.setBackground(UIManager.getColor("TextField.background"));
    le préfixe de la propriété background d'un JTextField est donc TextField, j'aimerais que le composant me donne ce préfixe , et que je sois pas obliger de faire un tas de teste conditionnelle via instanceof ....est-ce possible?

    merci !

  2. #2
    Membre expérimenté
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Par défaut
    Il serait sans doute possible de s'en sortir en construisant le nom de la propriété à partir de celui de l'instance (el.getClass().getSimpleName()), mais :
    • les propriétés accessibles via UIManager sont celles installées par le L&F en cours et lui sont spécifiques (aucune standardisation) ;
    • la couleur de fond d'un composant peut très bien avoir été changée par ailleurs et ne pas correspondre à celle par défaut ;

    En gros, la solution sera si spécifique qu'une valeur en dur devrait aussi bien faire l'affaire, laquelle devrait convenir pour tous les composants éditables.

    Quoiqu'il en soit, cette approche est bancale, il serait bien plus simple et plus propre que le code qui altère l'aspect d'un composant "en erreur" mémorise la précédente couleur de fond pour pouvoir la restaurer ensuite.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    J'avais aussi penser à passer via getSimpleName() , mais comme tu l'as dit c'est trop spécifique, surtout si je passe par des classes dérivé, là c'est même plus la peine d'y penser ...

    Quoiqu'il en soit, cette approche est bancale, il serait bien plus simple et plus propre que le code qui altère l'aspect d'un composant "en erreur" mémorise la précédente couleur de fond pour pouvoir la restaurer ensuite.
    Je crois que j'ai pas le choix....

    merci a+ !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Bonjour à vous deux,

    Moi j'ai également un problème avec le UIManager pour les menuBar, menu et menuItem de awt. Connaissez-vous un moyen similaire à UIManager pour changer l'apparence de ces composants svp?

    Merci d'avance.

  5. #5
    Membre expérimenté
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Par défaut
    Citation Envoyé par roulian46 Voir le message
    Bonjour à vous deux,

    Moi j'ai également un problème avec le UIManager pour les menuBar, menu et menuItem de awt. Connaissez-vous un moyen similaire à UIManager pour changer l'apparence de ces composants svp?

    Merci d'avance.
    La classe UIManager est liée au système de L&F de Swing et n'existe pas dans AWT. Plus généralement, utiliser UIManager relève plus du bricolage qu'autre chose, même si ça peut être une solution acceptable car simple dans certains cas exceptionnels.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    D'accord mais j'aimerai trouver quand même un moyen de modifier la couleur et l'apparence de mon menu et des item de ce menu awt si c'est possible.
    Est ce que quelqu'un connait un moyen pcq je ne trouve pas de méthode setForeground, setColor, setBackground ou des méthodes du genre.

  7. #7
    Membre expérimenté
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Par défaut
    Citation Envoyé par roulian46 Voir le message
    D'accord mais j'aimerai trouver quand même un moyen de modifier la couleur et l'apparence de mon menu et des item de ce menu awt si c'est possible.
    Est ce que quelqu'un connait un moyen pcq je ne trouve pas de méthode setForeground, setColor, setBackground ou des méthodes du genre.
    Et bien tu ne peux pas ! AWT, contrairement à Swing, délègue tout ce qui relève du L&F aux composants natifs ("lourds") de la plateforme. Un certain niveau de personnalisation est possible mais ça reste limité et ça l'est encore plus pour les menus (d'où la hiérarchie parallèle de MenuComponent par rapport à Component). Si tu as déjà utilisé Mac OS et Windows, tu devrais avoir une bonne idée du "plus petit dénominateur" commun auquel AWT doit se limiter pour une barre de menus.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Ok merci bon je vais arrêter de chercher alors

    bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Association entre objet Id ou référence ?
    Par grosFab dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 19/04/2007, 13h41
  2. [Servlet] récupérer le préfixe du chemin
    Par zais_ethael dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/02/2006, 08h17
  3. [AS2] Récupérer une valeur d'un objet lorqu'on clique dessus
    Par softyClochette dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 13/10/2005, 18h40
  4. [Sources]Récupérer le chemin d'un objet OLE
    Par Mr.Gus dans le forum Contribuez
    Réponses: 9
    Dernier message: 12/05/2005, 10h11
  5. [Ada] Récupérer un pointeur sur un objet existant
    Par vincnet500 dans le forum Ada
    Réponses: 1
    Dernier message: 14/11/2004, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo