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 :

Problème avec une propriété de JSlider


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Problème avec une propriété de JSlider
    Bonjour à vous tous,
    j'ai un petit problème tout bête, mais apparament je dois l'être moi aussi car je ne trouve pas la solution, aussi me suis-je dit, tiens, on va poser la question :
    J'utilise un JSlider tout ce qu'il y a de plus standard, pour lequel je définis les valeurs minimum et maximum respectivement a 1 et 33449. Peu importe le pourquoi de ces valeurs, j'ai juste besoin d'une tirette qui me permette de faire glisser un curseur entre ces deux valeurs. Tout fonctionne très bien, sauf que lorsque l'on clique sur une zone de la tirette où ne se trouve pas le curseur, ce dernier se déplace alors vers l'endroit où l'on a cliqué pas à pas. Dans mon cas, j'ai mesuré ce pas comme représentant 10% de la valeur maximale, soit 3344. Comme je n'avais encore rien modifié en matière de réglage ou de comportement de mon Slider, je me suis dit que ce pas était automatiquement calculé par le Slider. Seulement voilà, ce qui m'arrangerait, c'est que le pas soit de 5... Et c'est là que je pêche, je n'ai pas trouvé le moyen de faire de la sorte.
    Quelqu'un pourrait-il m'aider ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  2. #2
    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
    As tu essayé de jouer avec les méthodes setMajorTickSpacing et setMinorTickSpacing?

  3. #3
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Merci Sinok
    J'ai effectivement joué avec toutes les propriétés disponibles au niveau du slider lui-même, mais rien n'y fait ?!....
    Quel que soit le conditionnement du JSlider, il semblerait que la valeur de ce pas soit systématiquement de 10% de la valeur maximale du Slider, et je ne trouve pas le moyen de le définir autrement...

    Je préciserai une chose, vue la valeur maximale du JSlider, il est évident que je n'affiche pas les graduations, qui à moins d'avoir un écran de plusieurs mètres carrés, ne forment qu'une jolie bande colorée si on les affiche.
    Je continue de chercher...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut
    Personne pour m'aider ?
    De mon côté je ne trouve rien.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Vraiment personne ?
    Je sais que cette question n'est pas bien passionante, mais je persiste à penser que cette valeur est parametrable. Je n'ai toujours pas trouvé d'autre solution que celle de m'orienter vers mon propre Slider...
    Je vais donc me permettre de maintenir ce poste encore un peu, et s'il n'y a vraiment pas de réponse, alors j'en concluerai que cette valeur n'est pas parametrable et qu'il n'y a pas d'autre alternative que de bidouiller son propre slider pour y arriver. Domage, ça me semblait être un paramètre utile à manipuler...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 17
    Par défaut
    Bonsoir,

    Question intéressante au contraire. Cela m'a étonné qu'on ne puisse pas paramétrer cette valeur. J'ai donc cherché un peu ...

    Déjà la raison pour laquelle la valeur est souvent de 10% (mais pas toujours, cela dépend en fait du L&F) se trouve dans la classe javax.swing.plaf.basic.BasicSliderUI :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        /**
         * This function is called when a mousePressed was detected in the track, not
         * in the thumb.  The default behavior is to scroll by block.  You can
         *  override this method to stop it from scrolling or to add additional behavior.
         */
        protected void scrollDueToClickInTrack( int dir ) {
            scrollByBlock( dir );
        }
    La méthode scrollByBlock() définit quand à elle une valeur de scroll égale à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int blockIncrement = (slider.getMaximum() - slider.getMinimum()) / 10;
    Comme indiqué dans la doc de la méthode scrollDueToClickInTrack(), il faut la redéfinir pour obtenir le comportement que tu souhaite. Ou alors redéfinir la méthode scrollByBlock().

    Par exemple, javax.swing.plaf.metal.MetalSliderUI redéfini la méthode de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        protected void scrollDueToClickInTrack( int dir ) {
            scrollByUnit( dir );
        }
    ce qui a pour effet qu'un clic ne déplace le slider que de 1 unité !

    Au final, c'est quand même un peu compliqué de devoir redéfinir le UI, donc à toi de voir si cela t'es vraiment nécessaire d'avoir une valeur de 5 à chaque incrément ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/11/2014, 12h10
  2. problème avec une propriété css "height"
    Par ferhat.adel dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 26/02/2011, 15h14
  3. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56
  4. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

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