Используя решение от Benson99 в качестве трамплина, я думаю, что следующее должно работать.
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class KeyListenFrame extends JFrame {
public KeyListenFrame() {
JFrame frame = new JFrame();
frame.setTitle("Key Listener Frame - Press F3 to close frame");
frame.setSize(600, 300);
frame.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_F3) {
System.out.println("Pressed " + e.getKeyCode());
System.out.println("Closing frame");
frame.dispose();
} else {
System.out.println("Pressed " + e.getKeyCode());
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
KeyListenFrame keyListenFrame = new KeyListenFrame();
}
}