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 :

[JtextField] Changement de focus?


Sujet :

Composants Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut [JtextField] Changement de focus?
    Bonjour à tous,

    j'ai une fenetre modale composée de plusieurs champs JTextField.
    Les 2 prmiers champs sont des champs dans lesquels l'utilisateur dois rentrer une date de début et une date de fin, et ensuite il continue à remplir les autres champs.

    J'aimerais effectuer un test sur les dates dès la selection du champs suivant (par exemple le champ "nom") par l'utilisateur de manière à le prévenir si les dates ne sont pas valables (par calcul) au lieu de le laisser remplir l'ensemble du formulaire pour rien et de le prévenir qu'à l'appuis du bouton "OK".

    Est-il prévu ce genre de methode ?
    Peut-on appeller une methode sur un chagement de focus (si j'ai bien comprit la notion de focus...).

    Comment implementer ?
    Comment savoir que le focus est passé au champ suivant les champs de dates?

    merci à tous.
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  2. #2
    Membre habitué
    Inscrit en
    Avril 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 170
    Points : 174
    Points
    174
    Par défaut
    Oui tu peux appeler une methode sur le changement de focus.
    Ce que je te propose c'est de desactiver tous les textfield sauf ceux pour la date. Tu ajoutes a ces textfields un focus listener qui appelle une methode qui verifie la validite des dates entrees (si les 2 textfields sont remplis). Des que la condition est remplie tu actives les autres champs.
    The path of excess
    leads to the tower of wisdom.
    (Enigma)

  3. #3
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Citation Envoyé par la7su
    Oui tu peux appeler une methode sur le changement de focus.
    Ce que je te propose c'est de desactiver tous les textfield sauf ceux pour la date. Tu ajoutes a ces textfields un focus listener qui appelle une methode qui verifie la validite des dates entrees (si les 2 textfields sont remplis). Des que la condition est remplie tu actives les autres champs.
    Heu...moi je veux bien, mais je n'ai jamais fait ça, donc si tu avais un peu de code source pour que j'y vois plus clair...
    - Comment "désactive"-t-on un JTextField?
    - Comment ajoute-t-on un FocusListener ?
    - Comment appelle-t-on la methode qui verifie les dates au bon moment?
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  4. #4
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    le plus simple sur un JTextField qui doit implementer un controle syntaxique est d'implementer un InputVerifier que tu attaches au JTextField.

    Si la saisie est incorrecte, il refusera de sortir de la zone.
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    L'InputVerifier est puissant, mais quand même trés contraignant, au sens où il te laissera pas changer le focus (y compris en basculement de fenêtre) sans une valeur "acceptable", d'où énervement de l'utilisateur si il n'en connait pas au moins une tout de suite...

    Sinon, côté focus listener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tonTextField.addFocusListener(new java.awt.event.FocusListener(){
        public void focusGained(FocusEvent e){
        //au moment de l'acquisiation du focus
     
        }
        public void focusLost(FocusEvent e) {
        //au moment de la perte du focus
        }
    });
    Par désactivé, je pense qu'il voulait dire un petit setEnable(false) ou setEditable(false).

    Quand à la vérification des dates, à toi de l'appeler sur la perte de focus, selon tes critères de vérification des dates...

  6. #6
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Le InpuVerifier n'est pas lancé dans le cas d'un basculement de fenetre vers une application exterieur.
    Ensuite a toi de regler je dirais tes requestFocusEnabled() pour que le comportement soit acceptable.

    Citation Envoyé par NikauSenpeï
    L'InputVerifier est puissant, mais quand même trés contraignant, au sens où il te laissera pas changer le focus (y compris en basculement de fenêtre) sans une valeur "acceptable", d'où énervement de l'utilisateur si il n'en connait pas au moins une tout de suite...

    Sinon, côté focus listener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tonTextField.addFocusListener(new java.awt.event.FocusListener(){
        public void focusGained(FocusEvent e){
        //au moment de l'acquisiation du focus
     
        }
        public void focusLost(FocusEvent e) {
        //au moment de la perte du focus
        }
    });
    Par désactivé, je pense qu'il voulait dire un petit setEnable(false) ou setEditable(false).

    Quand à la vérification des dates, à toi de l'appeler sur la perte de focus, selon tes critères de vérification des dates...
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Ah vi exact... Mais tu essayes de fermer ton fenêtre (disons) avec la croix ou clic droit-fermer en barre des taches, et l'inputVerifier est appelé. C'est avec ce désagrément que je confondais...
    M'enfin, je ne m'étais pas penché trés longtemps là-dessus, et j'étais resté sur une mauvaise impression, faudra que je rejette un oeil.

  8. #8
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Comment fait-on pour forcer le focus sur un JTextField ?
    (Cela me permettrait de positionner le curseur directement sur le JTextField à remplir.)
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    tonJTextField.requestFocus();

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

Discussions similaires

  1. Changement de focus auto JTextField
    Par riderfun dans le forum Composants
    Réponses: 2
    Dernier message: 11/03/2009, 14h22
  2. [JTextField] : Changement de couleur de la bordure
    Par Foub dans le forum Composants
    Réponses: 7
    Dernier message: 17/05/2008, 16h30
  3. Réponses: 1
    Dernier message: 16/01/2007, 22h25
  4. [JTextField] Problème de focus
    Par clairette dans le forum Composants
    Réponses: 29
    Dernier message: 22/07/2005, 16h52
  5. Changement de FOCUS lors d'un changement d'application
    Par gmc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 01/02/2005, 17h57

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