Dad*_*box 5 java swing listeners jtextfield jspinner
首先,为了让我的工作更容易解释,这里是我的一些代码:
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...
}
});
Run Code Online (Sandbox Code Playgroud)
...
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;
}
}
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,我走得那么远.事实上,当我在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" );
}
}
} );
Run Code Online (Sandbox Code Playgroud)