Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java] KeyListener

    21 janvier 2006 à 16:30:28

    Bonjour,

    je fait un applet et je m'entraine à utiliser KeyListener.

    public void keyTyped(KeyEvent ke) {
        char recu = ke.getKeyChar();
       
        if (ke.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
            S = S.substring(0, S.length());
            repaint();
        } else {
            if(S.length() < 10) {
                if(recu != 0) {
                    S = S + recu;
                    repaint();
                }
            }
        }
    }


    Donc mon but est ici quand l'utilisateur rentre des caractère, cela s'affiche et lorsqu'il appuyer sur la touche "retour" au lieu d'effacer un caractère, il rajoute un petit carré pour un caractère inconnu dans la chaine S...

    Comment doit je faire, est ce ma condition qui est fausse ?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      23 janvier 2006 à 17:02:17

      il faut que tu fasse:


      public void keyTyped(KeyEvent ke) {
          char recu = ke.getKeyChar();
         
          if (ke.getKeyCode() == 8)/*8 est le code de la touche "effacer"*/ {
              char [] chaine = S.toCharArray();
              S = "";
              for (int i = 0;i < chaine.length-1;i++)
              {
                  S = S + Character.toString(chaine[i]);
              }
              //S = S.substring(0, S.length()); on en a plus besoin
              repaint();
          } else {
              if(S.length() < 10) {
                  if(recu != 0) {
                      S = S + recu;
                      repaint();
                  }
              }
          }
      }


      normalement il doit y avoir une fonction spéciale pour effacer un caractère dans une chaine, mais j'en suis pas sûr...

      PS:
      chez moi il me met:
      "cannot resolve symbol :
      Character.toString(chaine[i])"
      ^
      si t'a le même problème, tu remplace:

      S = S + Character.toString(chaine[i]);


      par


      S = S + new Character(chaine[i]).toString();


      je sais, ça parait un peu foireux a première vu, mais ça marche, j'en suis sûr ^^ .


      Bon, j'espere avoir pus t'aider :p !
      salut :) !!!!
      • Partager sur Facebook
      • Partager sur Twitter

      [Java] KeyListener

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown