当前位置: 首页 > 知识库问答 >
问题:

获取列和行选择时数组越界?

西门马鲁
2023-03-14
DefaultTableModel tabelaPrs = new DefaultTableModel (null, new String[] {"DATA","EXERCICIO","PESO","NÚMERO DE REPETIÇÕES"});
JTable jtPrs = new JTable(tabelaPrs);
jtPrs.setEnabled(false);
JScrollPane jspPrs= new JScrollPane(jtPrs);
jspPrs.setEnabled(false);
jspPrs.setBounds(55,88,639,567);
jspPrs.setPreferredSize(new Dimension(475,125));
contentPane.add(jspPrs);

我的try catch为JTable提供来自SQL的数据:

try
{
    java.sql.Statement stmt;
    ResultSet rs;
    String sql = "SELECT * FROM prs ORDER BY data";
    int i = 0;
    String [] campos = new String [] {null, null, null,null};

    LigacaoBD obterLigacao = new LigacaoBD();
    Connection con = (Connection) obterLigacao.OL();

    stmt = con.createStatement();
    rs = stmt.executeQuery(sql);

    while (rs.next())
    {
        tabelaPrs.addRow(campos);
        tabelaPrs.setValueAt(rs.getString("data"), i, 0);
        tabelaPrs.setValueAt(rs.getString("exercicio"), i, 1);
        tabelaPrs.setValueAt(rs.getString("peso"), i, 2);
        tabelaPrs.setValueAt(rs.getString("num_reps"), i,3);
        i++;
    }
    obterLigacao.FecharLigacao(con);
}
catch (SQLException sqle)
{
    JOptionPane.showMessageDialog(null, "Não foi possivel efetuar a operação na BD." + sqle.getMessage());
}

下面是我的鼠标点击事件:

jtPrs.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {

            int r = jtPrs.getSelectedRow();

            getData = tabelaPrs.getValueAt(r, 1).toString();
            getExercicio = tabelaPrs.getValueAt(r, 2).toString();
            getPeso = tabelaPrs.getValueAt(r, 3).toString();
            getRepetições = tabelaPrs.getValueAt(r, 4).toString();
        }
    });

共有1个答案

常永长
2023-03-14

查看JTable的JavaDocs,如果没有选择行,方法JTable.getSelectedRow()将返回-1。

int r=jtprs.getselectedrow();getData=tabelaprs.getValueat(r,1).toString();

然后尝试将检索到的值与JTable一起使用,这可能会导致ArrayOutOfBoundsException。

 类似资料:
  • 问题内容: 如果项目已排序,是否可以运行select语句并获取行号? 我有一张这样的桌子: 然后,我可以运行此查询以按ID获取订单数量: 这样,我就可以对表格中的每个表格进行计数: 我也想获得行号,所以我可以知道那是第一行,第二行,等等(本质上是订单的排名,而不仅仅是原始计数)。我知道当我返回结果集时可以在Java中执行此操作,但是我想知道是否有一种方法可以纯粹在SQL中处理它。 更新资料 设置等

  • 问题内容: 我一直在发疯,试图找出我在这里做错了什么愚蠢的事情。 我正在使用NumPy,并且我想从中选择特定的行索引和特定的列索引。这是我的问题的要点: 为什么会这样呢?我当然应该能够选择第一行,第二行和第四行以及第一列和第三列?我期望的结果是: 问题答案: 花式索引要求您提供每个维度的所有索引。您为第一个提供3个索引,为第二个仅提供2个索引,因此会出现错误。您想做这样的事情: 当然写这很痛苦,所

  • 问题内容: 如何在ng-grid中创建(或访问)选定行的数组? 文档(滚动到“网格选项”) index.html main.js Plnkr代码(并运行它) 问题答案: 根据文档,应该是的属性,因此请尝试以下操作: 控制者 的HTML

  • 本文向大家介绍获取jqGrid中选择的行的数据,包括了获取jqGrid中选择的行的数据的使用技巧和注意事项,需要的朋友参考一下 下面可以获取选择一行的id,如果你选择多行,那下面的id是最后选择的行的id: var id=$(‘#gridTable').jqGrid(‘getGridParam','selrow'); 如果想要获取选择多行的id,那这些id便封装成一个id数组,那可以使用以下: v

  • 我想以这种方式在csv中写入arraylist中的任何内容,无论其大小如何,但一个数组的值较少,这会导致数组越界错误,有没有办法解决这个问题? 在这个A到H中,它有自己的arraylist,有时其他数组中的元素少于A的大小,这会导致数组超出范围。

  • 我在while循环中有一个带有multiple=“true”属性的select option表单字段。如果选择选项应该是多选的,我们应该在名称上放一个方括号,如[]。 Ref:如何在php中获取选择框的多个选定值? 在这种情况下,我如何从每个选择框数组中获取值

  • 问题内容: 可以说我有一个包含许多这样的行的表: 我正在做一个简单的查询,像这样: 运行此查询后,我得到如下结果: 非常简单 :) 我现在需要做的是选择计数大于10的具有最小和最大利润的行(这是一个参数) 我能够通过此获得最小值: 我正在考虑使用ORDER BY DESC进行上述查询,但这不是最佳解决方案。 我需要做的是: 选择2行:按范围分组时,第一行最少,第二行最大AVG利润。 编辑: 如果我

  • 问题内容: 对于Java中的数组,我们可以使用获取数组的。同样,如何获得 2D 数组的行数和列数? 问题答案: 好吧,您可能想要获取行数和列数。也就是说,如果您这样定义数组: