Problème Java, Frame et KeyListener
zagor
-
javaiste noob -
javaiste noob -
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
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
-
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);
}
}
;-) -
-
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 Containerpublic 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 ceciArrayList list = getAllSubComponent(myJFrame); for(int i = 0; i < list.size(); i++){ ((Component)list.get(i)).addKeyListener(myKeyListener); }