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

AWT/Swing Java Discussion :

[JSlider] Changer le couleur d'un JSlider ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut [JSlider] Changer le couleur d'un JSlider ?
    Bonjour,

    Je cherche à modifier la couleur du knob et du track d'un JSlider en ajoutant un masque transparant

    J'imagine qui faut redefinir leurs méthodes paint pour ajouter un masque de couleur, mais comment récupérer les instances de ces deux objets ?
    Ou alors je ne suis pas sur la bonne voie ?

    Merci
    Nico

    PS:
    Je précise que la couleur doit changer suivant l'état de mon slider et que si possible c'est modif soit prise en compte pour tous les L&F

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    idem pour moi,(surtout le ps)
    PS:
    Je précise que la couleur doit changer suivant l'état de mon slider et que si possible c'est modif soit prise en compte pour tous les L&F
    comment on recupere les couleurs principles du look&feel? ca serait bien pratique

  3. #3
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    J'ai regardé dans les classes BasicSliderUI et MetalSliderUI et il y a les méthodes paintThumb et paintTrack pour dessiner respectivement le knob et le track.
    Faut que je trouve comment appliquer mon masque après leur appel, je piste

    Citation Envoyé par eclesia
    comment on recupere les couleurs principles du look&feel? ca serait bien pratique
    Si tu regarde dans la classe MetalLookAndFeel, il y a un tas de methode static pour récupérer les couleurs utilisées dans le Look.
    Je ne sais pas si c'est pareil pour les L&F natif !

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    si on avait une reponse de quelqu'un qui c'est amusé a faire un look&feel ca nous avancerait.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bon le début de la méthode paintThumb du BasicSliderUI (et oui en java ça s'appelle le thum et pas le knob, va savoir pourquoi)


    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
     
     
    public void paintThumb(Graphics g)  {        
            Rectangle knobBounds = thumbRect;
            int w = knobBounds.width;
            int h = knobBounds.height;      
     
            g.translate(knobBounds.x, knobBounds.y);
     
            if ( slider.isEnabled() ) {
                g.setColor(slider.getBackground());
            }
            else {
                g.setColor(slider.getBackground().darker());
            }
    et sinon au niveau UIManager la valeur doit être dans "Slider.background"

    [edit] ou pas en fait - je verrais ce soir en rentrant du taf [/edit]

  6. #6
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Donc c'est la méthode paint de la classe BasicSliderUI qui appelle les méthodes paintThumb et paintTrack. Si qqn pouvait me dire comment oppérer maintenant, ca m'eviterait de faire des betises

    Edit :
    Merci sinok,

    Le classe MetalSliderUI redefini la methode paintThumb(), je ne peux donc pas modifier celle de BasicSliderUI car elle va être écrasée.
    Comment appliquer ma modif alors ?

    "Slider.background" doit avoir le même effet que JSlider.setBackground(), qui modifie la couleur de fond du panel accueillant le slider. c'est pas vraiment ca que je cherche.

    Sinon comment connaitre les clé reconnu par UIManager ?

    Je continue a chercher de mon coté

  7. #7
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Pour illustrer, voila le resultat que j'aimerais obtenir

    La couleur dépend de l'état d'un objet associé à mon slider

    Ici c'est un programme pur GTK, mais je souhaiterais qqs chose de similaire avec le L&F windows et metal ocean.

    Nico

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Malheureusement pour vous, dans metal le thumb est une Icon....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    horizThumbIcon = SAFE_HORIZ_THUMB_ICON =
                    UIManager.getIcon( "Slider.horizontalThumbIcon" );
    Et en ce qui concerne les l&f natifs faut voir.

Discussions similaires

  1. Réponses: 8
    Dernier message: 14/05/2004, 11h18
  2. [Forms] changer les couleurs
    Par Nounoursonne dans le forum Forms
    Réponses: 11
    Dernier message: 02/04/2004, 09h40
  3. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/03/2003, 17h02
  4. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37
  5. Changer les couleurs de la palette avec du RGB
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 11
    Dernier message: 13/01/2003, 08h55

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