Problème Java, Frame et KeyListener

Bonjour!

Est-ce qu'il est possible d'utiliser un KeyListener dans une Frame en Java, ou faut-il passé par l'intermédiaire d'un Panel ?
Merci d'avance

3 réponses

  1. package be.hacktrack.misc.keyListener;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    /**
    *
    * @author HackTrack
    * @version 1.0
    */
    public class KeyListenerTester extends JFrame{
    private Container c;

    public KeyListenerTester() {
    super("KeyListener tester");
    initialize();
    }

    private void initialize(){
    c = getContentPane();
    setSize(Toolkit.getDefaultToolkit().getScreenSize());
    addKeyListener(new KeyAdapter(){
    public void keyTyped(KeyEvent ke){
    System.out.println("Vous avez appuyé sur '" +ke.getKeyChar() + "'");
    }

    });
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main (String args[]) {
    KeyListenerTester tester = new KeyListenerTester();
    tester.setVisible(true);
    }
    }

    ;-)
    2
    1. ca compile pas ya une erreur sur ;-) il dit qu'il connait pas!!!
      0
    2. Modérateur
      @mon nomsalut

      tu peux être plus explicite, il dit qu'il connait pas quoi ???
      0
    3. @mon nomJe ne sais pas si c'est de l'humour (j'espère), mais le ;-) comme tu dis est un clin d'oeil bien sympathique que je joins à la fin de chaque message. Ca n'a évidemment rien à voir avec Java.

      ;-) (ceci n'est pas du code)
      0
  2. J'oubliais de préciser que je ne passe pas par un Applet.
    0
    1. Pour qu'un keyListener fonctionne dans une JFrame chaque elements de la JFrame doit avoir le keyListener.

      J'ai creer une methode pour récupérer tous les sous elements d'un Container
      
      	public ArrayList getAllSubComponent(Container _container){
      		ArrayList _list = new ArrayList();
      		Component[] _listComponent = _container.getComponents();
      		
      		for(int i = 0 ; i < _listComponent.length; i++){
      			_list.add(_listComponent[i]);
      			try{
      				_list.addAll(getAllSubComponent((Container) _listComponent[i]));
      			}catch(Exception e ){
      
      			}
      		}
      		return _list; 
      	}
      


      J'ajoute ensuite les keyListener comme ceci
      		ArrayList list = getAllSubComponent(myJFrame);
      		for(int i = 0; i < list.size(); i++){
      			((Component)list.get(i)).addKeyListener(myKeyListener);
      			
      		}
      
      0
      1. bien utile ton petit code kloumyd il vient de me sauver merci :)
        0