【发布时间】:2018-02-04 03:55:10
【问题描述】:
我的代码:
public class BehemothSelectGUI extends javax.swing.JFrame {
private static DBUtil db = new DBUtil();
private static Populate populate = new Populate();
static int WepHitPoints;
static int ShoulderHitPoints;
static int ChestHitPoints;
static int WristHitPoints;
static int HelmHitPoints;
static int WepAttack;
static int HelmDef;
static int ShoulderDef;
static int WristDef;
static int ChestDef;
static int HelmMoveSpeed;
static int WepMoveSpeed;
static int ChestMoveSpeed;
static int ShoulderMoveSpeed;
static int WristMoveSpeed;
private void cmbMothHeadActionPerformed(java.awt.event.ActionEvent evt) {
String data[][] = db.selectAll("tblBehemoth");
for (int i = 0; i < data.length; i++) {
if (data[i][1].equals((String) cmbMothHead.getSelectedItem())) {
HelmHitPoints = Integer.parseInt(data[i][2]);
HelmDef = Integer.parseInt(data[i][4]);
HelmMoveSpeed = Integer.parseInt(data[i][5]); //StackTrace error
break;
}
}
}
错误:
线程“AWT-EventQueue-0”java.lang.NumberFormatException 中的异常:对于输入字符串:“FALSE” 在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 在 java.lang.Integer.parseInt(Integer.java:580) 在 java.lang.Integer.parseInt(Integer.java:615) 在 jumpp.BehemothSelectGUI.cmbMothHeadActionPerformed(BehemothSelectGUI.java:182) 在 jumpp.BehemothSelectGUI.access 100 美元(BehemothSelectGUI.java:12) 在 jumpp.BehemothSelectGUI$2.actionPerformed(BehemothSelectGUI.java:78) 在 javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258) 在 javax.swing.JComboBox.contentsChanged(JComboBox.java:1332) 在 javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118) 在 javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:93) 在 javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:131) 在 javax.swing.JComboBox.addItem(JComboBox.java:716) 在 jumpp.Populate.cmbPop(Populate.java:66) 在 jumpp.BehemothSelectGUI.(BehemothSelectGUI.java:41) 在 jumpp.HeroSelectGUI.btnChooseMothActionPerformed(HeroSelectGUI.java:170) 在 jumpp.HeroSelectGUI.access$000(HeroSelectGUI.java:14) 在 jumpp.HeroSelectGUI$1.actionPerformed(HeroSelectGUI.java:78) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 在 java.awt.Component.processMouseEvent(Component.java:6533) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 在 java.awt.Component.processEvent(Component.java:6298) 在 java.awt.Container.processEvent(Container.java:2236) 在 java.awt.Component.dispatchEventImpl(Component.java:4889) 在 java.awt.Container.dispatchEventImpl(Container.java:2294) 在 java.awt.Component.dispatchEvent(Component.java:4711) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) 在 java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) 在 java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) 在 java.awt.Container.dispatchEventImpl(Container.java:2280) 在 java.awt.Window.dispatchEventImpl(Window.java:2746) 在 java.awt.Component.dispatchEvent(Component.java:4711) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 在 java.awt.EventQueue.access$500(EventQueue.java:97) 在 java.awt.EventQueue$3.run(EventQueue.java:709) 在 java.awt.EventQueue$3.run(EventQueue.java:703) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 在 java.awt.EventQueue$4.run(EventQueue.java:731) 在 java.awt.EventQueue$4.run(EventQueue.java:729) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 构建成功(总时间:5 秒)
我一直在为其他变量使用 Integer.parseInt(data[i][number] 转换器,但只有这个会引发错误。
更新: 当我 sysoutLine 它返回'FALSE'。我仍然不知道它是如何返回 false 的,因为在我的数据库中 col 5 是数字
System.out.println(data[i][5]);
【问题讨论】:
-
异常信息的哪一部分你不明白?您给 parse 的值是“FALSE”。那不是一个数字。所以你不能把它解析成一个int。我们无法告诉您为什么尝试将包含布尔值的字符串解析为数字。
-
请检查
data[i][5]是否指向提取数据的右列 -
从重复的问题中查看这个答案:stackoverflow.com/a/18711985/1531124
-
和无关的:先了解java基础。例如:为什么不将类的所有字段设为静态。不知道为什么这是一个坏主意的人很可能没有准备好创建摇摆 UI 或与数据库交互。有句话说:先学爬再跑。
标签: java