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 :

problème de KeyEvent


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut problème de KeyEvent
    Bonjour à tous, je n'ai pas commencé le java depuis trés trés longtemps alors je rencontre régulièrement des problèmes tout cons sur lesquels je passe beaucoup de temps ; mais celui-ci est resté non résolu, donc je vous l'expose en espérant recevoir une solution :

    Voici mon code qui consiste à avoir une TextArea dans laquelle on écrit directement (sans passer par un TextField) :

    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
    36
    37
    38
    39
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class main extends Applet implements KeyListener {
     
     TextArea area;
     char caract;
     String caracts;
     int lvl;
     
     public void init() {
      addKeyListener(this);
      setFont(new Font("OCR A Extended", Font.BOLD, 13));
      area=new TextArea();
      add(area);
     }
     
     public void start() {
      requestFocus();
     }
     
     public void KeyPressed(KeyEvent e) {
      caract=e.getKeyChar();
      if (caract!=0) {
       caracts=""+caract;																																																																				
       area.append(caracts);
      }
     }
     
     public void KeyReleased(KeyEvent e) {
      if (e.getKeyCode() == KeyEvent.VK_ENTER) {
       area.append("\n");
      }
     }
     
     public void KeyTyped(KeyEvent e) { }
     
    }
    Et maintenant ce que m'affiche l'invite de commande quand je le compile :


  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    voila, sa devrais marcher
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
     
    	public class main extends Applet 
    	{
     
    	TextArea area;
    	char caract;
    	String caracts;
    	int lvl;
     
    	public void init() 
    	{
    		    setSize(new Dimension(500,350));
    			BorderLayout b1 = new BorderLayout(8,5);
    			setLayout(b1);
     
    	addKeyListener(new BR());
    	setFont(new Font("OCR A Extended", Font.BOLD, 13));
    	area=new TextArea();
        add(area);
    	}
     
    	public void start() {
    	requestFocus();
    	}
     
     
        public class BR implements KeyListener 
        {
     
        	       public void keyPressed(KeyEvent e) {
        		caract=e.getKeyChar();
        		if (caract!=0) {
        		caracts=""+caract; 
        		area.append(caracts);
        		}
        		}
     
        	       public void keyReleased(KeyEvent e) {
        		if (e.getKeyCode() == KeyEvent.VK_ENTER) {
        		area.append("\n");
        		}
        		}
     
        	       public void keyTyped(KeyEvent e) { } 
        }
    }

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    J'avoue ne pas comprendre ton problème pourquoi as tu besoin de listener pour ecrire dans ta JTextArea ?

  4. #4
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Je crois qu'il n'a pas compris le fonctionnement d'un JTextArea. La preuve, il pense qu'il faut passer par un JTextfield pour écrire du texte dans ce composant.

    Ce n'est pas le cas, et heureusement .

    Pas besoin de ce listener

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Alors pour surfing903, j'ai essayé ton code et je me retrouve avec le même problème mais pour main.BR.
    Et atha2, un TextArea n'est pas prévu pour que l'on écrive dedans mais pour réceptionner du texte que l'applet lui envoie, donc je suis contraint de passer via un KeyListener pour que mon applet capte ce que j'écris.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    quel est l'interet puisque tu ajoute le JTextArea à ta fenêtre/applet ?
    (je comprend pas...)

  7. #7
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Citation Envoyé par Flash38A
    Alors pour surfing903, j'ai essayé ton code et je me retrouve avec le même problème mais pour main.BR.
    Et atha2, un TextArea n'est pas prévu pour que l'on écrive dedans mais pour réceptionner du texte que l'applet lui envoie, donc je suis contraint de passer via un KeyListener pour que mon applet capte ce que j'écris.
    j'ai jamais entendu ça. Tu parles dans l'absolu ou c'est juste que dans ton cas, tu n'en n'as besoin que pour afficher quelque chose ? Parce qu'un JTextArea est bien fait pour qu'on écrive dedans.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Donc, d'après ce que vous me dites, on pourrait écrire direct dedans ? Parce qu'en fait dans mon cas, ce doit être un cadre de texte ou le visiteur peut écrire et où le programme écrit en fonction de ce qu'il a écrit.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    text area singnifie zone de texte tout comme text field signifie champs de texte donc bien sur que tu peut écrire dedans c'est même prévus pour
    sinon voir http://java.sun.com/j2se/1.4.2/docs/...JTextArea.html pour plus d'information

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Ok, je vais regarder ça, merci beaucoup pour ces infos.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Par contre, qu'en est-il de mon systeme de réponse par le programme en fonction de ce qui est écrit ?

  12. #12
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    quel problème ?

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Eh bien, comment détecter ce que le visiteur a écrit, quand il appuie sur la touche entrée pour valider son texte, pour que l'applet puisse répondre, puisque j'ai éradiqué le KeyEvent de mon programme. (en fait cela ressemblera à un terminal)

  14. #14
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    un petit bouton valider ?
    cf: JButton

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Et pour calculer ce qui aura été écrit ? En prenant en compte qu'il y aura déja du texte dans le "terminal".

  16. #16
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    poste un nouveau sujet avec un exposé précis de ce que tu veux faire parce que là ce n'est plus le même sujet et que tu es très flou sur ce que tu veux faire. Pense au tag résolu et bonne chance.

Discussions similaires

  1. Problème d'initialisation d'un KeyEvent
    Par Parasoul dans le forum Débuter
    Réponses: 25
    Dernier message: 21/11/2014, 20h03
  2. [KeyEvent] Problème de multiples appels
    Par pierre.zelb dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 11/08/2005, 14h53
  3. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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