# Java > Interfaces Graphiques en Java > AWT/Swing >  Dtecter l'appui sur la touche "Supp"

## waldoun

Bonjour,

Dans une JComboBox, comment faire pour que, lorsque je clique sur la touche "Supp" ou "Del" du clavier => l'lement slectionn de la liste sera supprimer ?

et merci d'avance  ::king::

----------


## Deadpool

Salut.

Pour grer les vnements clavier sur un composant, il faut utiliser l'interface KeyListener.

Cette interface dfinit 3 mthodes :

- keyPressed (mthode invoque lorsque l'on presse une touche)
- keyReleased (mthode invoque lorsque l'on relche une touche)
- keyTyped (mthode invoque lorsque l'on appuie sur une touche)

Dans ton cas, il va falloir que tu cres une classe implmentant cette interface
en dfinissant une action pour l'vnement keyTyped. Vu que tu n'as pas besoin des autres mthodes tu peux tout simplement crer une classer qui drive de KeyAdapter qui est une classe implmentant l'interface KeyListener en fournissant une implmentation par dfaut pour chacune des mthodes (tu n'auras ainsi qu' redfinir la mthode qui t'intresse).

Il faut donc tout d'abord que tu cres une classe drivant de KeyAdapter.



```

```

Note : cette classe peut trs bien tre une classe interne  ta classe graphique principale. Cela te permettra d'accder plus facilement  ta variable JComboBox pour connaitre l'lment slectionn.




Ensuite, tu ajoute ta classe couteur  ta JComBox.



```

```



Note bien aussi que tu peux galement utiliser une classe interne anonyme pour coder ton action.


Et normalement a devrait fonctionner.

Si c'est pas clair, n'hsite pas  demander des prcisions.

A+  :;): 

PS: le cas chant, tu peux aller jeter un coup d'oeil au tuto de Sun sur les KeyListener.

----------


## waldoun

j'ai test mais sa n'a pas march (lorsque je clique sur le bouton Del)

j'ai affich quelque variable pour contrler l'erreur: 


```

```

et laffichage est comme suit: e.getKeyCode()=0 | KeyEvent.VK_DELETE=127 | KeyEvent.VK_BACK_SPACE=8

----------


## natha

Ce n'est pas vraiment un KeyListener qu'il faut utiliser pour une action sur une touche. Il faut se servir des InputMap.

Un exemple pour ajouter une action de cration sur la combinaison de touche Ctrl+N ou F4 dans une JTable.



```

```

----------


## waldoun

merci pour vos reponse  :;):

----------


## Miigui

Bonjour, 

je reviens sur ce topic qui est intressant. En effet, j'aimerais savoir quelle est la diffrence entre l'utilisation d'un KeyListener et d'un InputMap. Aussi, quand utilisez l'un et pas l'autre et vice versa ? 

En effet, j'aimerais crer un vnement associ  un JtextArea qui fait partie de ma vue dans mon modle MVC 

--> Quand l'utilisateur supprime du texte dans le JtextArea alors informer mon modle grce au controleur. <--


Merci d'avance,

----------


## bouye

Une InputMap  + ActionMap permet de dcoupler une action (a effectuer) du raccourci clavier qui permet de le dclencher. Ca permet par exemple de facilement redfinir les touches raccourcies a toutes ces actions. Par exemple dans un jeu dans un jeu on peut souvent redfinir toutes les touches ou dans une application bureautique ou chaque utilisateur pourrait redfinir tous les raccourcis clavier des commandes principales. Tandis que quand on code un KeyListener, ben tout est code en dur et donc on peut difficilement changer ce que vont faire les touches actives.

----------

