IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Key Listener qui passe pas


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Par défaut Key Listener qui passe pas
    Salut a tous,

    j'arrive pas a faire marcher un key listener tout bete alors que j'ai pas eu de probleme pour les boutons, mon menu et la sourie....

    La classe pricipale du programme (une sorte de controleur) est PercuXML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public class PercuXML implements ActionListener, MouseListener, KeyListener {
     
    	private Window window;
    	private Score score;
    	private Reader scoreReader;
    	private StemManager stemManager;
    	private CursorManager cursorManager;
     
    ....................
    public void keyTyped(KeyEvent e) {
    	System.out.println("pressed");
    	if (e.getKeyCode()==KeyEvent.VK_UP) {
    		System.out.println("up");
    		if (noteSelected != null)
    			noteSelected.increasePitch();
    	}
    	updateBeats(score);
    	window.getScorePanel().repaint();	
    }
     
     
    }
    Dans le constructeur de la Window qui est une JFrame j'ai ajoute le keyListener :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    	public Window(Score score, PercuXML percuXML) {
     
    		scorePanel = new ScorePanel(score);
    		scorePanel.addMouseListener(percuXML);
     
    		requestFocusInWindow();
    		addKeyListener(percuXML);
     
     
     
    		scoreScrollPane = new JScrollPane(scorePanel);
     
    .............................................
     
    		setExtendedState(this.MAXIMIZED_BOTH);
     
    		/**
                    setFocusable(true);
                    isAlwaysOnTop();
                    */
     
    	    setVisible(true);
    	}

    Et la, rien ne se passe, meme le message "pressed" n'apparait pas quand j'appuie sur une touche donc l'evenment n'est pas pris en compte.

    J'ai beau cherche, j'ai essaye de refiler le focus a d'autres composants graphiques comme le ScorePanel.

    Je comprend vraiment pas. Je sens l'erreur debile comme l'oublie de retour a la ligne dans le Manifest qui m'a fait perdre un temps monstre.

    Toute idee est la bienvenue.

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 109
    Par défaut
    certain element ne sont pas fait pour avoir le focus par defaut.

    tu dois configurer le composent qui doit générer les KeyEvent de maniere a pouvoir avoir le focus.

    exemple d'un JPanel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Jpanel p = new JPanel();
    p.setFocusable(true);
    p.requestFocus();
    C'est seulement apres ca qu'il pourrat générer des KeyEvents

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Par défaut
    Bien vue,

    merci, en faite y avait un autre probleme :

    quand je cliquais sur un bouton dans un autre panel il prenait le focus... mais la ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BOOST::REGEX une expression qui passe pas.
    Par techz dans le forum Boost
    Réponses: 2
    Dernier message: 13/05/2009, 08h14
  2. [MySQL] requete SQL qui passe pas avec note pad++ but phpmyAdmin
    Par southCfou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/11/2008, 11h20
  3. domxml caractère qui passe pas
    Par gabychon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/05/2006, 14h08
  4. [MySQL] un echo qui passe pas ^^
    Par Le Mage Noir dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 09/02/2006, 15h05
  5. [Oracle 9.i] Requête qui passe pas
    Par ftrifiro dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/12/2005, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo