首先,为了让我的工作更容易解释,这里是我的一些代码:
JSpinner spin = new JSpinner(); JFormattedTextField text = getTextField(spin); text.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { // Do stuff... } });
...
private JFormattedTextField getTextField(JSpinner spinner) { JComponent editor = spinner.getEditor(); if (editor instanceof JSpinner.DefaultEditor) { return ((JSpinner.DefaultEditor )editor).getTextField(); } else { System.err.println( "Unexpected editor type: " + spinner.getEditor().getClass() + " isn't a descendant of DefaultEditor" ); return null; } }
所以你可以看到,我走得那么远.事实上,当我在spinner(JFormattedTextField
)的文本字段组件中键入一个值,然后按ENTER键时,它可以工作.
我现在想要的是能够让文本字段响应ENTER,而不必手动输入新值(这种方法使得微调器的目的无法实现).我怎么做?
我知道这不是动作侦听器...但是也许这对您有用?
text.addKeyListener( new KeyAdapter() { @Override public void keyReleased( final KeyEvent e ) { if ( e.getKeyCode() == KeyEvent.VK_ENTER ) { System.out.println( "enter pressed" ); } } } );