Целое число не может быть преобразовано в двойное значение в JSpinner ⇐ JAVA
-
Anonymous
Целое число не может быть преобразовано в двойное значение в JSpinner
У меня есть фрагмент кода, который работает для одного JSpinner, но не работает для другого. У меня есть два JSpinner, использующие значения типа double или с плавающей запятой. Первый пример работает, а второй, который по большей части является дубликатом, выдает исключение
Исключение в потоке «AWT-EventQueue-0» java.lang.ClassCastException: класс java.lang.Integer невозможно привести к классу java.lang.Double (java.lang.Integer и java.lang.Double) находятся в модуле java.base загрузчика «bootstrap») Вот фрагмент кода:
double init = 0.0; двойной мин = 0,0; двойной максимум = 1,0; двойной шаг = 0,01; SpinnerModel firstSpinnerModel = новая SpinnerNumberModel(init, //начальное значение мин, // минимальное значение макс, //максимальное значение шаг); JSpinner firstSpinner = новый JSpinner (firstSpinnerModel); JSpinner.NumberEditor firstEditor = новый JSpinner.NumberEditor(firstSpinner) ; firstSpinner.setEditor(firstEditor); JFormattedTextField firstField = ((JSpinner.DefaultEditor) firstEditor).getTextField(); firstTextField.setColumns(3); ... SpinnerModel SecondSpinnerModel = новая SpinnerNumberModel(init, //начальное значение мин, // минимальное значение макс, //максимальное значение шаг); JSpinner SecondSpinner = новый JSpinner ( SecondSpinnerModel); JSpinner.NumberEditor SecondEditor = новый JSpinner.NumberEditor( SecondSpinner) ; SecondSpinner.setEditor(второй редактор); JFormattedTextField SecondTextField = ((JSpinner.DefaultEditor) SecondEditor).getTextField(); SecondTextField.setColumns(3); Может ли кто-нибудь помочь мне понять, что происходит? Что я делаю не так и как это исправить?
Обновление: Вот полное сообщение об ошибке:
Исключение в потоке «AWT-EventQueue-0» java.lang.ClassCastException: класс java.lang.Integer не может быть приведен к классу java.lang.Double (java.lang.Integer и java.lang.Double находятся в модуле java.base загрузчика "bootstrap") в java.base/java.lang.Double.compareTo(Double.java:155) в java.desktop/javax.swing.SpinnerNumberModel.incrValue(SpinnerNumberModel.java:362) в java.desktop/javax.swing.SpinnerNumberModel.getNextValue(SpinnerNumberModel.java:385) в java.desktop/javax.swing.JSpinner.getNextValue(JSpinner.java:409) в java.desktop/javax.swing.plaf.basic.BasicSpinnerUI$ArrowButtonHandler.actionPerformed(BasicSpinnerUI.java:706) в java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) в java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) в java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) в java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) в java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) по адресу java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) по адресу java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) в java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) в java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) в java.desktop/java.awt.Component.processEvent(Component.java:6391) в java.desktop/java.awt.Container.processEvent(Container.java:2266) в java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) в java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) в java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) в java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) в java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) в java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) в java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) в java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) в java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) в java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) в java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) в java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) в java.base/java.security.AccessController.doPrivileged(AccessController.java:399) в java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) в java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) в java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) в java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) в java.base/java.security.AccessController.doPrivileged(AccessController.java:399) в java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) в java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) в java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) в java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) в java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) в java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) в java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) в java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
У меня есть фрагмент кода, который работает для одного JSpinner, но не работает для другого. У меня есть два JSpinner, использующие значения типа double или с плавающей запятой. Первый пример работает, а второй, который по большей части является дубликатом, выдает исключение
Исключение в потоке «AWT-EventQueue-0» java.lang.ClassCastException: класс java.lang.Integer невозможно привести к классу java.lang.Double (java.lang.Integer и java.lang.Double) находятся в модуле java.base загрузчика «bootstrap») Вот фрагмент кода:
double init = 0.0; двойной мин = 0,0; двойной максимум = 1,0; двойной шаг = 0,01; SpinnerModel firstSpinnerModel = новая SpinnerNumberModel(init, //начальное значение мин, // минимальное значение макс, //максимальное значение шаг); JSpinner firstSpinner = новый JSpinner (firstSpinnerModel); JSpinner.NumberEditor firstEditor = новый JSpinner.NumberEditor(firstSpinner) ; firstSpinner.setEditor(firstEditor); JFormattedTextField firstField = ((JSpinner.DefaultEditor) firstEditor).getTextField(); firstTextField.setColumns(3); ... SpinnerModel SecondSpinnerModel = новая SpinnerNumberModel(init, //начальное значение мин, // минимальное значение макс, //максимальное значение шаг); JSpinner SecondSpinner = новый JSpinner ( SecondSpinnerModel); JSpinner.NumberEditor SecondEditor = новый JSpinner.NumberEditor( SecondSpinner) ; SecondSpinner.setEditor(второй редактор); JFormattedTextField SecondTextField = ((JSpinner.DefaultEditor) SecondEditor).getTextField(); SecondTextField.setColumns(3); Может ли кто-нибудь помочь мне понять, что происходит? Что я делаю не так и как это исправить?
Обновление: Вот полное сообщение об ошибке:
Исключение в потоке «AWT-EventQueue-0» java.lang.ClassCastException: класс java.lang.Integer не может быть приведен к классу java.lang.Double (java.lang.Integer и java.lang.Double находятся в модуле java.base загрузчика "bootstrap") в java.base/java.lang.Double.compareTo(Double.java:155) в java.desktop/javax.swing.SpinnerNumberModel.incrValue(SpinnerNumberModel.java:362) в java.desktop/javax.swing.SpinnerNumberModel.getNextValue(SpinnerNumberModel.java:385) в java.desktop/javax.swing.JSpinner.getNextValue(JSpinner.java:409) в java.desktop/javax.swing.plaf.basic.BasicSpinnerUI$ArrowButtonHandler.actionPerformed(BasicSpinnerUI.java:706) в java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) в java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) в java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) в java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) в java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) по адресу java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) по адресу java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) в java.desktop/java.awt.Component.processMouseEvent(Component.java:6626) в java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389) в java.desktop/java.awt.Component.processEvent(Component.java:6391) в java.desktop/java.awt.Container.processEvent(Container.java:2266) в java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001) в java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) в java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) в java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) в java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) в java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) в java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) в java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) в java.desktop/java.awt.Component.dispatchEvent(Component.java:4833) в java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) в java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) в java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) в java.base/java.security.AccessController.doPrivileged(AccessController.java:399) в java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) в java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) в java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) в java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) в java.base/java.security.AccessController.doPrivileged(AccessController.java:399) в java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) в java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) в java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) в java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) в java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) в java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) в java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) в java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Мобильная версия