Возможно ли, что JSpinner имеет дело с поплавками? У меня есть поплавки, такие как 10E-20, поэтому я не могу использовать Doubles, он должен быть плавающим ... но нет класса SpinnerNumberModel, который имеет дело с поплавками ...Возможна ли поплавка ввода JSpinner? Как?
ответ
Прежде всего я не очень понять, почему вы не можете использовать парные, но хорошо.
SpinnerNumberModel
способен иметь дело с поплавками, но вы должны передать их как Float
объектов. Существует this конструктор, который принимает Number
и Comparable
объектов.
Но помните, что поплавок не может представлять эти небольшие числа. Для такой высокой точности следует использовать BigDecimal
класс, который также является подклассом Number
. (Javadoc BigDecimal)
Вот как в Java Number
, Integer
, Double
, Float
работы.
java.lang.Number
супер тип java.lang.Integer
, java.lang.Double
а также java.lang.Float
, ....
SpinnerNumberModel
класс имеет следующий конструктор
public SpinnerNumberModel(Number value,
Comparable minimum,
Comparable maximum,
Number stepSize)
Я не вижу абсолютно никаких причин, почему мы не можем поставить Float
вместо от Number
с Float
является подтипом Number
. Float, который является ссылочным типом, а не float, который является примитивным.
Float value = new Float(50.28817271727);
Float step = new Float(5.29182);
SpinnerNumberModel model = new SpinnerNumberModel(value, null, null, step);
спасибо! получил это =) – Lydia
Edit: добавлена часть BigDecimal – Tobias
хорошо, я действительно не понимаю, почему я не могу использовать двойников либо у меня есть что-то вроде этого, но я не понимаю, почему он не работает! – Lydia
, который говорит вам использовать только поплавки? – Tobias