I am creating time picker using a JSpinner
. The text inside the JSpinner
is editable. But I want to set the JSpinner
as non editable, because there is the chance to give an invalid value. Can anyone help me?
Try the following:
JSpinner spinner = ...;
((DefaultEditor) spinner.getEditor()).getTextField().setEditable(false);
This should work as long as you didn't change the spinner editor yourself by calling spinner.setEditor(...)
.
Tell us if this helps.
A bit shorter:
JSpinner spinner = new JSpinner();
spinner.setEditor(new JSpinner.DefaultEditor(spinner));
When I try this, the spinner can still be edited by click the arrow! – yelliver
You can try setting the step to 0:
mySpinner.setModel(new SpinnerNumberModel(yourDefaultDisplayValue,
minValue, maxValue, step));
You can explore the other spinner models and do the same trick I guess.
来源:https://stackoverflow.com/questions/2902101/how-to-set-jspinner-as-non-editable