Java ArrayIndexOutOfBoundsException错误消息
我尝试选择一行,并使用jTable将行值存储到topicId中。然后,我使用刚才得到的topicId从数据库中检索数据。这是我的密码Java ArrayIndexOutOfBoundsException错误消息,java,sql,swing,Java,Sql,Swing,我尝试选择一行,并使用jTable将行值存储到topicId中。然后,我使用刚才得到的topicId从数据库中检索数据。这是我的密码 jTable.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) { if (jTable.getValueAt(jTable.getSel
jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
if (jTable.getValueAt(jTable.getSelectedRow(), 0) != null) {
int topicId = (Integer)jTable.getValueAt(jTable.getSelectedRow(), 0);}
eForumTopics topics = new eForumTopics(topicId);
topics.retrieveThread();
getJFrame().dispose();
eForumThreadContent myWindow = new eForumThreadContent(topicId);
myWindow.getJFrame().setVisible(true);
}
});
但是,我收到了这个错误消息
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableModel.getValueAt(Unknown Source)
at javax.swing.JTable.getValueAt(Unknown Source)
at kioskeForum.ui.eForumDiscussion$3.mouseClicked(eForumDiscussion.java:295)
第295行是if语句。我不知道我的代码有什么问题,因为我没有看到任何数组。有人能修好吗?提前感谢。它看起来像是
jTable.getSelectedRow()
返回-1
,这不是jTable.getValueAt()
的有效参数。如果未选择jtable中的任何行,则可能发生这种情况
从文件中:
返回第一个选定行的索引,如果未选择任何行,则返回-1
您应该将您的条件更新为以下内容:
if (jTable.getSelectedRow() >= 0 && jTable.getValueAt(jTable.getSelectedRow(), 0) != null) {
它看起来像是
jTable.getSelectedRow()
返回-1
,这不是jTable.getValueAt()
的有效参数。如果未选择jtable中的任何行,则可能发生这种情况
从文件中:
返回第一个选定行的索引,如果未选择任何行,则返回-1
您应该将您的条件更新为以下内容:
if (jTable.getSelectedRow() >= 0 && jTable.getValueAt(jTable.getSelectedRow(), 0) != null) {
if语句是否与这些代码相同?int-topicId=jTable.getSelectedRow()。我的意思是,它们是否都有相同的目的来获取所选行的数量并存储到topicId中?但为什么即使在我单击表的第二行和第三行时,它仍不断向我返回0的值?if语句是否与这些代码相同?int-topicId=jTable.getSelectedRow()。我的意思是,在获取所选行数并将其存储到topicId中时,这两种方法是否具有相同的目的?但为什么即使在我单击表的第二行和第三行时,它也会不断向我返回0的值?请学习java命名约定并坚持它们-现在请学习java命名约定并坚持它们-现在