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 :

Attacher un KeyListener à tout les composants


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Attacher un KeyListener à tout les composants
    Bonjour,
    Dans un fram j'ai plusieurs Jtextfield. J'ai cree un Keylistner que je voudrais l'appliquer à tous mes Jtextfield.
    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
    32
    33
    34
    35
       KeyListener keyListener = new KeyListener() {
          public void keyPressed(KeyEvent keyEvent) {
            printIt("Pressed", keyEvent);
            JTextField textField = (JTextField) keyEvent.getSource();
                String text = textField.getText();
              Pattern p = Pattern.compile("[0-9]{1,13}(\\.[0-9]*)?");
              Matcher m = p.matcher(text);
              boolean b = m.matches();
              if(b){
                  Fiche_Paye();
              }
          }
     
          public void keyReleased(KeyEvent keyEvent) {
            printIt("Released", keyEvent);
          }
     
          public void keyTyped(KeyEvent keyEvent) {
     
          }
     
          private void printIt(String title, KeyEvent keyEvent) {
            int keyCode = keyEvent.getKeyCode();
            String keyText = KeyEvent.getKeyText(keyCode);
            System.out.println(title + " : " + keyText + " / " + keyEvent.getKeyChar());
          }
        };
    for(Component c : jInternalFrame3.getComponents()){ 
     
        if(c instanceof JTextField){ 
           c.addKeyListener(keyListener);
     
            } 
                    } 
        }
    Mais il ne se passe rien.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le textField ne sont surement pas dans la liste des composant de la fenetre. Dans les composant d'une fenetre tu retrouvera le internalFrame, le menu, le GlassFrame. Dans le internalFrame c'est là que tu met tes composants swing. Mais tes TextFields sont surement organisés en sous panels.

    Pour quoi tu ne fais pas simplement un tableau JTextField[] ou une liste regroupant tous les textFields que tu veux valider au fur et à mesure que tu les crée? Mieux pourquoi tu n'attache pas le listener quand tu les crée?

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2013, 12h17
  2. boucle sur tout les composant de la page html
    Par patricktoulon dans le forum VBScript
    Réponses: 0
    Dernier message: 13/07/2013, 16h54
  3. Réponses: 1
    Dernier message: 14/10/2012, 17h53
  4. Réponses: 4
    Dernier message: 01/07/2011, 14h54
  5. Récupérer les composants visuels de toute l'application
    Par sessime dans le forum Composants VCL
    Réponses: 4
    Dernier message: 27/02/2006, 09h18

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