java - JTable.getValueAt(...) 中的 ClassCastException

标签 java swing jtable classcastexception

我的问题出在这段代码中:

int rowToTable = table.getSelectedRow();
int bookId = (int)table.getValueAt(rowToTable, 0);  // line 158

解决办法是什么?

我需要 bookID 的 int 值,而不是 Object

堆栈跟踪:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at Project.BookPage_Admin.dellAction(BookPage_Admin.java:158)
at Project.BookPage_Admin.actionPerformed(BookPage_Admin.java:126)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

最佳答案

看起来该表中有字符串值。在这种情况下:

int value = Integer.parseInt((String) table.getValueAt(rowToTable, 0));

关于java - JTable.getValueAt(...) 中的 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610771/

相关文章:

java - 扩展JPanel并设置BoxLayout

java - 选择 JTable 单元格中包含的 JComboBox 上的项目

java - 使用自定义渲染器初始化动态 JTable 的最佳方法是什么?

如果我在 while 循环中添加 if 语句,Java 缓冲读取器将停止读取行 :

java - JPA Hibernate 在@ElementCollection 上选择不同的并进行比较

java - POM.xml 中的错误

java - 使用 jLabels 在每次击键后显示来自 jTable 的文本(数据)

java - 从命令行使用 Gradle 构建时出现 "Package R does not exist"错误

java - 如何让 JFrame 高于所有其他应用程序(已经打开或将要打开),例如 Powerpoint

java - 如何在 java 中均匀调整 JFrame 的大小以使其保持其方形