What about preventing the focus to leave the JSpinner if the user typed something invalid? With an InputVerifier you can do that and, additionally, show a JOptionpane message informing the valid range.
This is from the JFormattedTextField API:
Show a user message in the ParseException handler before returning false.
Assign an instance of InputVerifier to the JFormattedTextField you extacted from the JSpinner with JComponent.setInputVerifier
Tell me it it works.
