Java 为什么我的jtable getSelectedRow()的方法不';不行?
这是我的第一个问题,请帮帮我。我尝试将getStelectedRow方法的值保存在一个类型为int的变量(行)中,以便下次可以使用getValueAt方法(行,列)。我的问题是变量的值,它是-1,这意味着该行未被选中,但我正在选择一行 下一个错误是:Java 为什么我的jtable getSelectedRow()的方法不';不行?,java,swing,jtable,Java,Swing,Jtable,这是我的第一个问题,请帮帮我。我尝试将getStelectedRow方法的值保存在一个类型为int的变量(行)中,以便下次可以使用getValueAt方法(行,列)。我的问题是变量的值,它是-1,这意味着该行未被选中,但我正在选择一行 下一个错误是: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1 如果需要更多细节,请告诉我。谢谢 编辑: 我的代码是: int row = j
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
如果需要更多细节,请告诉我。谢谢
编辑:
我的代码是:
int row = jTablePersonal.getSelectedRow();
String query = "select * from table where id ='"+jTablePersonal.getValueAt(row,0)+"'";
当我调用方法“getValueAt(row,0)”时,错误指向变量“row”问题是关于getSelectedRow() getSelectedRow仅在当前选中表格时有效 我的建议是,使用temp变量来获取last selectedrow以防止错误,如
if(table.getSelectedRow()!=-1)
{
int lastselected=table.getSelectedRow();
}
似乎是个新手问题。给你解释一下 我的问题是变量的值为-1,这意味着该行未被选中,但我正在选择一行 您没有在侦听器中使用此代码,而是将其作为构造函数或其他东西。您希望将代码放在侦听器中。差不多
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int row = table.getSelectedRow();
if (row != -1) {
// do something
}
}
});
如果您正在使用Netbeans GUI构建器工具,您可以
事件->动作->动作执行
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
}
在那里写代码你也应该花些时间阅读。GUI程序是事件驱动的,因此您需要学习如何通过注册侦听器来响应这些事件对代码的抽象太多,对您没有帮助。创建表时,所选行默认为-1。因此,除非用户实际单击了一行,否则该值将为-1。如果您认为仍然存在问题,请发布您的演示问题的帖子。@camickr我选择行,然后按一个包含编辑代码的jbutton,Netbeans会向我抛出错误:)好的,对不起,我的代码太长xD。。。我将使用pastebin.com xD。。等等minute@GogoMix,
我的代码太长了
请阅读我的评论!!!我们不想要你的整个计划!!!我们想让你做一些基本的调试。您所需要的只是一个带有JTable和JButton的简单示例。这个程序大约有20行代码。程序将进行编译,以便在通过读取代码看不到问题时执行代码。一旦理解了getSelectedRow()方法工作原理的基本概念,就可以调试自己的代码。我们不是来为您调试数百行代码的。