Voilà donc j'ai un problème tout bête mais tant que ça car ça fait quelques jours que je bloque dessus.
J'ai une JFrame tout simple qui doit créer un Canvas pour lancer un jeu.
J'ai simplement un label et un bouton dans ce JFrame, bouton qui crée le Game.
Lorsque j'arrive dans mon Canvas je n'ai pas le focus et donc le KeyListener ne capte aucun évènement.
J'ai pourtant dans le construteur de mon Game
Avec ce bout de code j'identifie qui à le focus :Code:
1
2
3 this.setFocusable(true); this.requestFocus();
Et en fait c'est toujours le JFrame précédent, ou le bouton du JFrame.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 KeyboardFocusManager focusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); focusManager.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { String properties = e.getPropertyName(); if (("focusOwner".equals(properties)) && (e.getNewValue() != null)) { Component component = (Component)e.getNewValue(); String name = component.getName(); System.out.println(name + " a pris le focus"); } } } ); System.out.println(panel.isFocusOwner()); System.out.println(focusManager.getFocusOwner());
J'ai essayé de rendre non focusable JFrame et bouton de la première fenêtre à ce moment là, aucun élément à le focus quand j'arrive dans le Canvas
Est égal à "null".Code:System.out.println(focusManager.getFocusOwner());
Si quelqu'un à une idée, parce que j'ai tout essayé 8O

