J'ai un problème avec mon programme que je ne peux pas résoudre. J'essaie depuis des heures et j'ai essayé de google, etc ... J'ai vu beaucoup de programmes, ce qui fonctionne, mais je ne sais pas pourquoi ma solution ne fonctionne pas. Mon but (pour le moment) est simple, je veux écrire sur la ligne de commande en cas de clic de souris ou de pression de touche. Le premier fonctionne, mais le second ne l'est pas. Quelqu'un peut-il dire pourquoi?java eclipse windowbuilder keyL'événement pressé ne se déclenche pas
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class test {
private JFrame frame;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test window = new test();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public test() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.getContentPane().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
System.out.println("Mouse has clicked!");
}
});
frame.getContentPane().addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
System.out.println("A key has pressed.");
}
});
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
1) Pour Swing, nous utilisons typiquement [key bindings] (https://docs.oracle. com/javase/tutoriel/uiswing/misc/keybinding.html) plutôt que le niveau inférieur 'KeyListener'. 2) * "J'essaie depuis des heures et j'ai essayé de google, etc ... J'ai vu beaucoup de programmes, ce qui fonctionne, mais je ne sais pas pourquoi ma solution ne fonctionne pas." * J'ai du mal à comprendre pourquoi dans les «nombreux programmes» que vous avez essayés, vous n'avez pas vu que le composant en question doit à la fois être focalisable et se concentrer sur l'entrée pour qu'un auditeur clé puisse fonctionner. (Ou que c'est l'un des problèmes que les raccourcis clavier nous aident à résoudre!) –
Avez-vous essayé 'frame.add ... Listener (...)' au lieu de 'frame.getContentPane(). Add ... Listener (...) '? – howlger