问题描述
我有一个带有 SpinnerNumberModel
的 jSpinner
,如下所示:
I have a jSpinner
with a SpinnerNumberModel
like this:
spinnerModelFix = new SpinnerNumberModel(0, 0, 65535, 1);
JSpinner fixedValueSpinner = new JSpinner(spinnerModelFix);
我只想在微调器中显示整数,这样如果用户插入字母,它们就不会显示.
I just want to show Integers in the spinner, so that if the user insert letters they aren't shown.
我想我应该扩展 SpinnerNumberModel
并覆盖
fireStateChanged()
方法...
I thought I should extends SpinnerNumberModel
and override
the fireStateChanged()
method...
但我不确定我需要在那个方法中做什么.
But I'm not sure what I need to do in that method.
谁能给我一些提示?
推荐答案
是的,解决方法很简单,
yes is possible and workaround is quite simple,
有两种方法可以做到,必须从
JSpinner
派生JTextField
或JFormattedTextField
,there are two ways how to do it, have to derive
JTextField
orJFormattedTextField
fromJSpinner
,然后添加
a)
DocumentListener
b)
DocumentFilter
我认为使用 DocumentFilter 是最简单的代码解决方法,更好,也许更安全
这篇关于避免 JSpinner 取信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!