获取JTable中所有选定行的单元格值

时间:2014-12-04 06:11:38

标签: java swing jtable

我正在试图弄清楚如何遍历JTable的行并在选择行时获取单元格值(可以选择多行),将值传递给方法然后继续迭代。表行包含用户输入的值。行将添加到表中,当用户输入每个条目时,将逐个显示在UI中。条目由int和2个双打组成。 int标识类型,并将两个双精度数添加到类型的两个运行标签(数量和体积),以便在应用程序的其他位置使用。如果用户选择一行(或多行)并按Delete,则会从表中删除这些行。还需要从正在运行的计数中扣除已删除行的值。为了删除行,我将所选行分配给一个数组并迭代它以删除每一行。

int[] selectedRows = entryTable.getSelectedRows();
if (selectedRows.length > 0) {
   for(int i = selectedRows.length - 1; i >= 0; i--) {
      entryTable.removeRow(selectedRows[i]); } }

如果可以在此迭代期间获取单元格值,那将是理想的,但经过大量搜索后,我还没有找到一种方法。只要最终结果相同,任何其他方式都可以。任何有关实现这一目标的最有效方法的想法都将受到赞赏。

1 个答案:

答案 0 :(得分:3)

你可以这样试试。

public void myMethod(JTable entryTable) {
    DefaultTableModel model = (DefaultTableModel) entryTable.getModel();
    if (entryTable.getRowCount() > 0) {
        if (entryTable.getSelectedRowCount() > 0) {
            int selectedRow[] = entryTable.getSelectedRows();
            for (int i : selectedRow) {
                int id = Integer.parseInt(entryTable.getValueAt(i, 0).toString());
                double val1 = Double.parseDouble(entryTable.getValueAt(i, 1).toString());
                double val2 = Double.parseDouble(entryTable.getValueAt(i, 2).toString());
                model.removeRow(i);
            }
        }
    }
}
相关问题