Java :keyevent !

khalilo2812 Messages postés 83 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

J'aimerais savoir comment faire pour créer une application qui travaille en arrière plan et qui capte des keyevents .

Merci d'avance

4 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Les keyevents sont captés lors d'une interaction avec ta fenêtre graphique.
    Si ton application est en arrière plan (et que donc ta fenêtre est inaccessible) tu ne pourras pas capter de tels évènements...
    1
  2. khalilo2812 Messages postés 83 Statut Membre
     
    oufff alors comment procéder pour que mon application capte les keyevents que je defni ! plus clairement : comment faire pour que mon application travaille en arrière plan et pour chaque appui sur "Entrer" (par exemple ) elle fait qlq chose !?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Il faudra que ta fenêtre soit active et que tu tapes entrée sur ta fenêtre ou un de ses composants.
      Si par exemple tu es en train de taper un texte sur Word, et que ton programme est en arrière plan, appuyer sur Entrée sur Word ne servira à rien...

      Voici un exemple d'implémentation d'un JTextArea qui capte l'appuie sur la touche Entrée :

      class JTextAreaPerso extends JTextArea implements KeyListener 
      {
      	private static final long serialVersionUID = 1L;
      	
      	public JTextAreaPerso()
      	{
      		super();
      		addKeyListener(this);
      	}
      		
      	@Override
      	public void keyPressed(KeyEvent e) 
      	{	
      		if (e.getKeyCode()==KeyEvent.VK_ENTER)
      		{
      			//TODO
      		}
      	}
      
      	@Override
      	public void keyReleased(KeyEvent e) 
      	{
      	}
      
      	@Override
      	public void keyTyped(KeyEvent e)
      	{
      	}
      }
      0
  3. khalilo2812 Messages postés 83 Statut Membre
     
    je vois ! j essayrai de trouvé un autre issu qd meme :) Merciii
    0
  4. khalilo2812 Messages postés 83 Statut Membre
     
    j ai eu l idee de travailler avec un listner sur toolkit ! qsk t en dit ?
    en fait suite a l appuis sur une touche defini il copi la zone selectionné ! c ce que je veux faire !
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Toolkit est abstract, donc cela me parait une mauvaise idée de l'hériter (et donc implémenter toutes ses méthodes abstraites) par contre bien sûr tu vas devoir l'utiliser...

      Tout à l'heure j'avais par exemple pris JTextArea, voici comment s'en servir pour récupérer le texte sélectionné dans le presse papier (je n'ai pas testé) :

      @Override
      public void keyPressed(KeyEvent e) 
      {	
          if (e.getKeyCode()==KeyEvent.VK_ENTER)
          {
              Clipboard cp = Toolkit.getDefaultToolkit().getSystemClipboard();
              cp.setContents(new StringSelection(this.getSelectedText()), null);
          }
      }
      0