Как установить JSpinner как недоступный для редактирования? - PullRequest
18 голосов
/ 25 мая 2010

Я создаю время выбора, используя JSpinner. Текст внутри JSpinner доступен для редактирования. Но я хочу установить JSpinner как недоступное для редактирования, потому что есть шанс дать недопустимое значение. Кто-нибудь может мне помочь?

Ответы [ 3 ]

28 голосов
/ 25 мая 2010

Попробуйте следующее:

JSpinner spinner = ...;
((DefaultEditor) spinner.getEditor()).getTextField().setEditable(false);

Это должно работать до тех пор, пока вы сами не изменили редактор блесны, вызвав spinner.setEditor(...).

Скажите нам, если это поможет.

13 голосов
/ 18 октября 2012

немного короче:

JSpinner spinner = new JSpinner();
spinner.setEditor(new JSpinner.DefaultEditor(spinner));
0 голосов
/ 11 октября 2018

Когда я пытаюсь это сделать, спиннер все еще можно отредактировать, нажав стрелку! - Yelliver

Вы можете попробовать установить шаг 0:

mySpinner.setModel(new SpinnerNumberModel(yourDefaultDisplayValue, minValue, maxValue, step));

Вы можете исследовать другие модели вертушек и сделать тот же трюк, я думаю.

...