Ich habe ein Problem mit meinem Programm, was ich nicht lösen kann. Ich versuche stundenlang und versuche Google, etc ... Ich habe viele Programme gesehen, die funktionieren, aber ich weiß nicht, warum meine Lösung das nicht tut. Mein Ziel (für jetzt) ist einfach, ich möchte im Falle eines Mausklicks oder eines Tastendrucks in die cmd-Zeile schreiben. Der erste funktioniert, der zweite nicht. Kann mir jemand sagen warum?java eclipse windowbuilder keyPressed Ereignis löst nicht
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) Für Swing, verwenden wir in der Regel [Tastenbelegungen] (https://docs.oracle. com/javase/tutorial/uiswing/misc/keybinding.html) statt der unteren Ebene 'KeyListener'. 2) * "Ich versuche stundenlang und versuche Google, etc ... Ich habe viele Programme gesehen, die funktionieren, aber ich weiß nicht, warum meine Lösung nicht funktioniert." * Ich habe Probleme zu verstehen Warum haben Sie in den vielen Programmen, die Sie ausprobiert haben, nicht gesehen, dass die fragliche Komponente sowohl fokussierbar sein muss als auch den Eingabefokus haben muss, damit ein wichtiger Listener funktioniert. (Oder dass dies eines der Probleme ist, das uns die Tastenbelegung hilft zu lösen!) –
Hast du 'frame.add ... Listener (...)' anstelle von 'frame.getContentPane() versucht. Add ... Listener (...) '? – howlger