我正在试图弄清楚如何遍历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]); } }
如果可以在此迭代期间获取单元格值,那将是理想的,但经过大量搜索后,我还没有找到一种方法。只要最终结果相同,任何其他方式都可以。任何有关实现这一目标的最有效方法的想法都将受到赞赏。
答案 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);
}
}
}
}