@Override public void processLowLevelEvent(String action, String... values) { String text = getText(); super.processLowLevelEvent( action, values ); SSpinner spinner = getSpinner(); if (isEditable() && isEnabled() && spinner != null ) { if ( text == null || !text.equals( values[0] ) ) { Object lastValue = spinner.getValue(); try { spinner.setValue( getTextField().getValue() ); } catch (IllegalArgumentException iae) { try { getTextField().setValue(lastValue); } catch (IllegalArgumentException iae2) { } } } } } };