我如何检查是否已选择行?

时间:2014-06-30 22:46:51

标签: java if-statement jtable indexoutofboundsexception selected

如果选择Table行,我有一个按钮点击事件,我将获得一个列值。但是,如果我没有选择行并单击按钮,我会收到错误:java.lang.ArrayIndexOutOfBoundsException:-1我的问题是如何检查是否已选择一行伪代码:if(Row == selected) { execute }

我有的java代码:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try 
        {
            int row = Table.getSelectedRow();
            String Table_click = (Table.getModel().getValueAt(row, 0).toString());            

           //... implementation hire   

        } catch (Exception e) 
        {
            JOptionPane.showMessageDialog(null, e);
        }        
    }  

感谢您的帮助。

3 个答案:

答案 0 :(得分:12)

在你想要发帖之前,停下来并在逻辑上思考你的问题。如果需要,请暂停编码 - 一旦休息一下,问题的解决方案通常会在短时间内出现。

int row = Table.getSelectedRow();

if(row == -1)
{
    // No row selected
    // Show error message
}
else
{
    String Table_click = (Table.getModel().getValueAt(row, 0).toString());
    // do whatever you need to do with the data from the row
}

答案 1 :(得分:1)

如果未选择任何行,getSelectedRow()将返回-1

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
   try {
      int row = Table.getSelectedRow();
      if (row > -1) {
         String Table_click = (Table.getModel().getValueAt(row, 0).toString());
         //... implementation here
      }
   }
   catch (Exception e) {
      JOptionPane.showMessageDialog(null, e);
   }
}

答案 2 :(得分:0)

如果行> -1然后你知道已经选择了一行。 见:http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#getSelectedRow()