Det bedste/nemmeste er nok at bruge InputMap og ActionMap
http://java.sun.com/products/jfc/tsc/special_report/kestrel/keybindings.htmlhttp://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.htmlAlternativt kan du skrive din egen KeyEventDispatcher.
Eksempel med InputMap/ActionMap
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
public class InputMap_ActionMap extends javax.swing.JFrame {
public InputMap_ActionMap() {
initComponents();
panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F1"), "_F1");
panel.getActionMap().put("_F1", new AbstractAction(){
public void actionPerformed(ActionEvent ae){
do_F1_Action(ae);
}
});
setSize(300,300);
}
private void initComponents() {
panel = new javax.swing.JPanel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1.setColumns(10);
panel.add(jTextField1);
jTextField2.setColumns(10);
panel.add(jTextField2);
getContentPane().add(panel, java.awt.BorderLayout.CENTER);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new InputMap_ActionMap().setVisible(true);
}
});
}
private void do_F1_Action(ActionEvent ae){
JOptionPane.showMessageDialog(this,"Du trykkede på F1");
}
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JPanel panel;
}