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] Limiter l'utilisateur à un intervalle donné


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut [JSlider] Limiter l'utilisateur à un intervalle donné
    Bonjour,

    Aujourd'hui ca sera les JSlider.
    Voila je m'explique : j'ai un JSlider dont le range va de 0-100 et je voudrais que l'utilisateur ne puisse donner une valeur quu'entre 25-70 par exemple.
    C'est à dire que le curseur doit rester bloqué a 25 ou 70 et ne doit pas aller au dela.

    Je n'ai rien trouvé qui me permette de le faire.
    J'ai déjà essayé de passer par le BoundedRangeModel en surchargeant la méthode setValue(int newValue), la valeur est bien bloquée mais le curseur peut aller au dela des limites que je lui ai fixé.

    Est ce que qq1 aurai une piste ou aurai deja vu ce genre de chose ?

    Merci d'avance
    A bientôt

  2. #2
    Membre chevronné

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Par défaut
    Quand tu crée ton JSlider , tu indique les valeurs min et max comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JSlider jslider = new JSlider(25,70);
    Ca me semble assez évident donc peut etre que je n'ai pas compris ta question ... si c'est le cas, donne nous un exemple

  3. #3
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Peut_être en ajoutant un listener sur les changements de valeur du (modèle du) JSlider, qui contraindrait la valeur entre 25 et 70 ?
    ou en surchargeant la méthode createChangeListener() de JSlider ?

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    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 909
    Billets dans le blog
    54
    Par défaut
    Ne peux-tu pas tout simplement faire un slider qui vas de 25 à 75 plutot que de 0 à 100. En général ca "confusionne" moins les utilisateurs que de leur afficher des valeurs qu'ils ne pourront jamais choisir.
    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

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Comme ceci :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
    slider.addChangeListener(this);
    ...
     
    public void stateChanged(ChangeEvent e) {
      final JSlider source = (JSlider) e.getSource();
     
      if (!source.getValueIsAdjusting()) {
         boolean outOfBounds = false;
         int value = (int) source.getValue();
     
         if (value < 25) {
            value = 25;
            outOfBounds = true;
         } else if (value > 75) {
            value = 75;
            outOfBounds = true;
         }
     
         if (outOfBounds) {
            final int value0 = value;
            SwingUtilities.invokeLater(new Runnable() {
              public void run() {
                source.setValue(value0);
              }
            });
         } else {
           ....
         }
      }
    }

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    Merci herve91, ta réponse s'approche beaucoup du résultat final que je veux obtenir.
    Mais je suis très exigent
    Le curseur ne reste pas bloqué, il est replacé quand on lache la souris.
    Est ce que tu ne verrais pas un moyen de bloquer le curseur ?

  7. #7
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    vi tu es très exigeant à ce que je vois ...
    Là je ne vois pas trop... à part toucher l'UI delegate (BasicSliderUI), et ça se complique

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Par défaut
    Ok je verrai si c'est trop galère de changer l'UI je garderai la solution que tu m'as donné.

    Merci beaucoup
    ++

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

Discussions similaires

  1. Verification d'intervalles donnés
    Par Premium dans le forum C
    Réponses: 6
    Dernier message: 25/05/2006, 11h37
  2. [Mail] Mail() limit d'envoi et intervalles secondes
    Par thibotus01 dans le forum Langage
    Réponses: 1
    Dernier message: 03/05/2006, 13h34
  3. Réponses: 16
    Dernier message: 03/03/2006, 20h15
  4. Réponses: 68
    Dernier message: 30/11/2005, 17h29
  5. Limiter les 30dernière liste de données?
    Par SkyDev dans le forum Langage SQL
    Réponses: 11
    Dernier message: 08/03/2004, 17h01

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