如何在JXDatePicker上注册KeyStroke

时间:2009-05-04 10:11:34

标签: java keystroke swingx

当用户按下Enter键时,我需要将焦点转移到另一个元素上,所以我成功地以这种方式在大多数元素上注册KeyStroke:

 this.getInputMap( ).put( KeyStroke.getKeyStroke( '\n' ), "transferFokus" );

  this.getActionMap( ).put( "transferFokus", transferFokusa );

一切正常,除了扩展JXDatePicker的类,我认为它消耗了Enter键。我能做什么?

重点是让人们使用GUI界面,因为他们使用的是旧的DOS应用程序,在这些应用程序中,他们使用Enter而不是TAB键在窗体内移动。

2 个答案:

答案 0 :(得分:3)

从javadoc看起来,JXDatePicker使用JFormattedTextField作为日期字符串的实际编辑组件。 JXDatePicker.getEditor()返回文本字段,所以也许你应该尝试在文本字段上调用getInputMap()和getActionMap()?

答案 1 :(得分:1)

为了将java.awt.event.KeyEvent添加到JXDatePicker,您需要获取其编辑器并将事件添加到其中。例如:

jXDatePicker1.getEditor().addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyPressed(java.awt.event.keyEvent evt) {
        // Your functionality here...
    }
});