按照JTextField的方式使用JSpinner

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,而不必手动输入新值(这种方法使得微调器的目的无法实现).我怎么做?

jav*_*y79 5

我知道这不是动作侦听器...但是也许这对您有用?


    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)