Salut,
J'ai une MainFrame (qui étend JFrame) ainsi qu'un contentPane (un JPanel) et un glassPane (un JPanel aussi).
J'ai ajouté un MouseMotionListener et un MouseListener sur mon glassPane, à ce moment là les "clics" ne peuvent donc pas être écoutés par les composants contenus dans mon contentPane.
Je fais donc des tests, si le glassPane doit gérer le clic, il le gère, sinon je veux qu'il le dispatch sur le contentPane.
Je fais donc ceci :
Cette méthode est bien appelée quand je le souhaite (ça affiche "dispatch"), mais les clics ne sont pas pris en compte sur le contentPane (il y a des JButton dessus, il ne reçoivent pas les events).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void dispatchEvent(MouseEvent e) { System.out.println("dispatch"); MouseEvent event = SwingUtilities.convertMouseEvent(e.getComponent(), e, mainFrame.getContentPane()); mainFrame.getContentPane().dispatchEvent(event); }
Si je désactive le glassPane (setVisible(false)), ils les reçoivent bien.
Je ne comprends pas, j'ai déjà utilisé le dispatch, ça marchait très bien, j'ai regardé le code source qui marchait bien (dans un autre contexte), j'ai fait exactement pareil (enfin apparemment non)... et ça ne marche pas...
Une idée?
Partager