Problème keyListener lorsque la fenêtre est masquée
soyen
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'arrive à afficher "r clicked" uniquement lorsque ma fenêtre est visible, lorsque j'appuie sur masquer (setVisible(false)) alors l'action du keyListener ne fonctionne pas
d'avance merci pour votre aide
J'arrive à afficher "r clicked" uniquement lorsque ma fenêtre est visible, lorsque j'appuie sur masquer (setVisible(false)) alors l'action du keyListener ne fonctionne pas
import javax.swing.*; import java.awt.*; import java.io.*; import javax.swing.event.CaretListener; import javax.swing.event.CaretEvent; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.KeyListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class IG_Screen extends JFrame implements ActionListener, KeyListener{ JButton btnCommentaire = new JButton("Masquer"); public IG_Screen(){ super("Screen"); this.setSize(150, 100); this.setVisible(true); btnCommentaire.addActionListener(this); addKeyListener(this); btnCommentaire.setBounds(10, 10, 120, 25); this.add(btnCommentaire); addWindowListener(new WindowAdapter(){ public void windowOpened(WindowEvent e) { requestFocus(false); } }); } public void keyPressed(KeyEvent evt){} public void keyReleased(KeyEvent evt){} public void keyTyped(KeyEvent evt) { if (evt.getKeyChar() == 'r'){ System.out.println("r cliked"); this.setVisible(true); } } public void actionPerformed(ActionEvent e) { if (e.getSource() == btnCommentaire){ this.setVisible(false); } } public static void main(String[] args) { JFrame f = new IG_Screen(); f.setLayout(null); f.setVisible(true); } }
d'avance merci pour votre aide
A voir également:
- Problème keyListener lorsque la fenêtre est masquée
- Fenetre windows - Guide
- Fenêtre hors écran windows 11 - Guide
- Hotel de la fenetre de la console ✓ - Forum Virus
- Mcafee fenetre intempestive - Accueil - Piratage
- Fenetre de navigation privée - Guide
1 réponse
Bonjour,
Un Listener récupère les événements du composant auquel il est ajouté.
Si tu appuies sur une touche lorsque tu es sur un composant c'est les KeyListener de ce composant qui seront appelés, mais aucun cas les Listener des autres composants ne seront appelés.
Si ton composant est masqué, tu ne peux plus interagir avec lui, les événements vont être envoyés à un autre composant : celui qui est resté visible, potentiellement géré par un autre programme.
Un Listener récupère les événements du composant auquel il est ajouté.
Si tu appuies sur une touche lorsque tu es sur un composant c'est les KeyListener de ce composant qui seront appelés, mais aucun cas les Listener des autres composants ne seront appelés.
Si ton composant est masqué, tu ne peux plus interagir avec lui, les événements vont être envoyés à un autre composant : celui qui est resté visible, potentiellement géré par un autre programme.