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 :

saisir un nombre maximal dans un JSpinner [Débutant(e)]


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 86
    Par défaut saisir un nombre maximal dans un JSpinner
    Bonjour,

    J'ai un champ Jspinner sur une interface en swing, ce champ accepte valeur minimal=1 et maximal=1000.
    je l'ai déclaré comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JSpinner nombreASelectionnerField=new JSpinner(new SpinnerNumberModel(1, 1,
    				1000, 1));
    mais quand je saisie une valeur supérieure à 1000,il l'accepte!!!

    Pourriez vous SVP m'indiquer ue autre solution.

    Merci d'avance.

    Cdt,

  2. #2
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    es tu sur de ne pas faire un new JSpinner() ailleur ? normalement ça devrait marcher parfaitement

  3. #3
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    +1
    Pour vérifier, déclare ton JSpinner en final éventuellement (provoquera une erreur de compilation si tu affectes le spinner à nouveau) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final JSpinner nombreASelectionnerField=new JSpinner(new SpinnerNumberModel(1, 1, 1000, 1));
    Vérifie également si tu n'as pas un JSpinner déclaré en variable d'instance de la classe. Une bêtise dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JSpinner nombreASelectionnerField = new JSpinner();
     
    private void initComponents() {
        JSpinner nombreASelectionnerField=new JSpinner(new SpinnerNumberModel(1, 1, 1000, 1));
    }

  4. #4
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 86
    Par défaut listener
    Rebonjour,

    est ce qu'on peut déclarer un listener sur le JSpinner pour ajuster le nombre à1000 si l'utilisateur donne un nb>1000?

    merci d'avance

    Cdt,

  5. #5
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addChangeListener(this);
    et tu devra implémenter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public void stateChanged(ChangeEvent ce){
        int valeur = model.getNumber().intValue();
     
    }
    mais ce n'est pas la solution, ... tu devrais chercher d'où vient le pb je pense

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par coquero Voir le message
    est ce qu'on peut déclarer un listener sur le JSpinner pour ajuster le nombre à1000 si l'utilisateur donne un nb>1000?
    C'est du contournement... Tu vas rajouter du code pour corriger un comportement que tu as mal codé ailleurs. Dans ce nouveau code tu as une forte probabilité d'y ajouter au moins 1 bug, et ça te fera 2x plus de code à maintenir.
    Pourquoi faire simple quand on peut faire compliqué ?

    How to Use Spinners [en]

  7. #7
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 86
    Par défaut
    Bonjour,

    pour aapliquer addChangeListener sur le champ nombreASelectionnerField,

    dois je créer un modèle de SpinnerNumberModel,jusqu'à maintenant j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     SpinnerNumberModel model = new SpinnerNumberModel(1, 1,
    				1000, 1); 
    Spinner nombreASelectionnerField = new JSpinner(model);
    nombreASelectionnerField.addChangeListener((ChangeListener) this);
    après j'ai implémenté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void stateChanged(ChangeEvent ce) {
    		int valeur =model.getNumber().intValue();
    		if (valeur > 1000){
    			model.setValue(1000);
    		System.out
    				.println("Attention: vous ne pouvez pas dépasser 1000 ajout ");
    	}
    		else{
     
    		}
    	}

    J'aimerais que vous me disiez ce que je dois faire pas à pas surtout que je viens de toucher en swing.

    Merci bcp d'avance.

    Cdt,

Discussions similaires

  1. Nombre maximal de destinataire dans outlook 2007
    Par sofien dans le forum Outlook
    Réponses: 2
    Dernier message: 07/12/2007, 08h15
  2. Quel est le nombre maximal de tables dans un DataSet ?
    Par Philorix dans le forum Accès aux données
    Réponses: 6
    Dernier message: 11/09/2006, 14h18
  3. Nombre maximal de fichiers dans un répertoire
    Par cquilgars dans le forum Administration système
    Réponses: 10
    Dernier message: 15/12/2005, 12h04
  4. [C#]saisir que un nombre decimal dans 1 textBox
    Par mcay dans le forum Windows Forms
    Réponses: 25
    Dernier message: 04/11/2005, 15h43
  5. Réponses: 7
    Dernier message: 16/11/2004, 15h45

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