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

Composants Java Discussion :

JSlider dans tous ses états


Sujet :

Composants Java

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut JSlider dans tous ses états
    Bonjour.

    Je suis entrain de concevoir une ihm pour un jeu de société.
    Pour ne pas avoir à vérifier que l'utilisateur rentre des données valide tout le temps, j'ai décidé d'utiliser au maximum des slider.

    Le souci, c'est que je voudrais changer beaucoup de chose sur ces sliders et je suis pas sûr que se soit possible.

    Je crois que le point crucial est :
    Est ce qu'on peut changer la forme du slider ?

    Sinon,

    est ce qu'il est envisageable de faire une classe MonJSlider extends JSlider et de réimplémenter la méthode qui donne sa forme au JSlider?

    Si oui,

    quel est le nom de cette méthode?

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    1) oui mais ce n'est guere aise dans Swing.

    2) oui et... non.

    Si tu etends JSlider tu peux tres bien redefinir ses methodes de rendu pour l'afficher comme bon te sembles. Cependant il te faudra refaire son dessin en partant de 0...

    En fait un composant Swing ne se dessine pas lui-meme (ou que tres rarement), il delegue son rendu a un composant qu'on appelle un UI delegate (voir methode setUI()). C'est ce qui permet de faire varier le look'n feel (on a une UI pour Metal, une pour Ocean, une pour GTK, une pour Windows classique, une pour Windows XP, etc...). C'est cette UI qui est en fait responsable du comportement (reaction a la souris et au clavier par exemple) et de l'apparence du composant que tu utilises.

    Ainsi tu peux aller jeter un coup d'oeil a la classe javax.swing.plaf.basic.BasicSliderUI qui represente une implementation de base pour une UI pour un JSlider. Tu peux jeter un coup d'oeil aux autres UI dont le code source est dispo (comme javax.swing.plaf.metal.MetalSliderUI) mais ca ne t'avancera guere plus.

    3) la classe javax.swing.plaf.basic.BasicSliderUI dispose de la methode
    void paintThumb(Graphics g) qui dessine le bouton.

    Par contre :

    - le lnf basic est...... basique.... ca ne ressemble ni a metal, ni ocean, ni XP etc... Tu seras donc probablement ammene a surcharger/reecrire beaucoup beaucoup de methodes et faire pas mal de changements en profondeur pour arriver a un resultat "joli".

    - le thumb est lie au membre protected Rectangle thumbRect qui est sa boite englobante. Il faut penser a le modifier celon la forme que tu donnes a ton bouton, en effet des optimisation de rendu sont faites en fonction des boites englobantes des sous-parties du slider.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Insérer des en-têtes dans tous ses fichiers
    Par nako dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/09/2007, 16h18
  2. [AJAX] L'ajax dans tout ses états
    Par nimois3O dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/05/2007, 16h11

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