• [^] # Re: modifie completement ton code

    Posté par (site web personnel) . En réponse au message J'arrive pas à récupérer un évenement clavier dans une fenêtre. Évalué à 1.

    Souvent pour les Listener le plus simple est de faire des trucs du genre :
    jc.addKeyListener(new KeyAdapter(){
     public void keyPressed(KeyEvent e) {
     System.out.print ("Event clavier trouvé");
     System.out.print (e.getKeyChar ());
     }
     ...
    });
    
    Le principe étant :
    • J'ajouter à mon composant l'écouter correspondant aux évenements que je veux écouter (addKeyListener, addMouseListener, addWindowListener...)
    • Je définis les methodes (ici dans une classe anonyme (new KeyAdapter(){...}) correspondants aux actions que je souhaite réaliser pour chaque évenement

    Souvent on préfere utiliser les nAdapter aux nListener (KeyAdapter, MouseAdapter...) parcequ'il sont une implémentation des premiers (class KeyAdapter implements KeyListener) et qu'ils ne nécessitent donc pas de réecrire l'ensemble des methodes mais juste celles dont on a besoin.

    Une fois que tu auras piger le principe, c'est valable pour tout les évenements.

    Autre chose pour enfoncer le clou. Java est un language Objet. D'une maniere generale (on deviens plus subtil par la suite) l'attirbut static ne dois être utilisé que pour le main. Cela veux dire que tout le reste doit être objet (C'est évidament faux, mais ça aide à piger)

    Ne pas écrire :
    class HelloWord{
     //args[0] est le nom de la personne
     public static void main(String[] args){
     try{
     System.out.println("Salut " +args[0]);
     }
     catch(ArrayIndexOutOfBoundsException e){
     System.out.println("Salut Anonyme");
     }
    }
    
    Mais plustôt:
    class HelloWord{
     private String nom
     public HelloWord(String nom){
     this.nom = nom;
     saluer();
     void saluer(){
     //this est optionnel
     System.out.println("Salut " +this.nom);
     }
     public static void main(String[] args){
     try{
     new HelloWord(args[0]);
     }
     catch(ArrayIndexOutOfBoundsException e){
     new HelloWord("Anonyme");
     }
    }