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 :

[JSpinner] Personnaliser


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut [JSpinner] Personnaliser
    Bonjour,

    Dans le cadre d'embellissement de mon appli, je souhaite intégrer une JSpinner. Or cette classe ne me convient pas trop, et donc j'ai décidé de recréer (dites le moi si vous la jugez non necessaire) mon propre JSpinner appelé IntSpinner .

    Voici donc les ajouts et les restrictions:
    Mon objet ne peut que manipuler les chiffres. Donc quand on appuie sur un caractère autre que chiffre, cela ne fait rien.
    Je souhaiterai mettre un min et un max. J'ai vu que de base on pouvait incrémenter et décrémenter quand on mettait un chiffre. Donc quand on incrémente une valeur qui a atteint son maximum, on le bloque à son maximum, et pareil pour le minimum

    Mais je n'y arrive pas à faire ces deux points! Des idées plz!!

    Voici le peu (mais très peu!) qui me est correct. Le reste est nul, je veux repartir à zero avec vous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class IntSpinner extends JSpinner {
      private int minValue = 0;
      private int maxValue = 0;
     
      IntSpinner(int min, int max) {
        super();
        minValue = min;
        maxValue = max;
      }
     
      ...
    Merci!



    Billy

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Tu pourrais plutot utiliser un SpinnerNumberModel sur ton JSpinner. Cela te permet de définir les valeurs minimum et maximum

    Ensuite tu peux utiliser une classe qui hérite de JSpinner.NumberEditor pour modifier le JFormattedTextField obtenu par getTextField() afin qu'il n'accepte que des chiffres comme c'est indiquer dans la FAQ : Comment contraindre la saisie dans un composant texte ?

    Bon courage,
    a++

  3. #3
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Merci, j'ai utilisé tes conseils, et je suis bloqué à ce stade:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JSpinner spinner = new JSpinner(new SpinnerNumberModel(4, 1, 20, 1));
    spinner.setEditor(new JSpinner.NumberEditor(spinner, "#"));
    Dans ce code, je créé un spinner de minimum 1, maximum 20, initialisé à 4, dont le pas est 1. Et puis j'ai apliqué comme tu m'as dit un JSpinner.NumberEditor.

    Là deux pbs: Je souhaiterai que le nombre de caractères qu'on peut taper soit 2 au maximum.
    Je veux taper que des chiffres, et pourtant lors de l'éxecution j'ai pu taper "p3".

    J'ai pourtant baladé la FAQ de chez SUN:
    http://java.sun.com/docs/books/tutorial/uiswing/components/spinner.html


    Merci de vos idées.


    Billy

  4. #4
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    [je remonte le thread au cas où...]

    désolé d'utiliser ce système, mais j'ai essayé tout seul et j'ai pas trouvé

  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
    bonjour,

    j'ai moi-même cherché pour raison professionnelle et je n'ai rien trouvé concernant le contrôle à la volée des caractères (par ex. n'accepter que des chiffres) ou la longueur max. J'ai donc attaqué directement le JFormattedTextField du JSpinner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JFormattedTextField ftf = ((JSpinner.DefaultEditor) jSpinner1.getEditor()).getTextField();
    Ensuite, tu as le lien Comment contraindre la saisie dans un composant texte ?, méthode 2. Il faut redéfinir aussi la méthode replace()

Discussions similaires

  1. [langage] personnaliser le tri
    Par schnecke dans le forum Langage
    Réponses: 3
    Dernier message: 24/03/2004, 16h14
  2. [JSpinner]Sélection du texte
    Par ced dans le forum Composants
    Réponses: 9
    Dernier message: 10/12/2003, 08h35
  3. Personnaliser un rapport d'erreur sous Windows XP
    Par Neilos dans le forum Windows
    Réponses: 5
    Dernier message: 21/11/2003, 19h13
  4. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 13h53
  5. [VB6] [UserControl] Évènements personnalisés
    Par Frankywinky dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2003, 18h56

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