2014-12-04 107 views
0

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

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

如果有可能这个迭代期间获得的单元格值,这将是理想的,但经过大量的搜索,我还没有找到一种方法来做到这一点。只要最终结果相同,任何其他方式都可以。任何想法,以最有效的方式来实现这一点,将不胜感激。

+0

当你删除一行,各项指标变化...我想,首先相符总选定行的,这然后可以在一个步骤中扣除,然后,我会在反向命令,删除行... – MadProgrammer 2014-12-04 06:15:54

+1

您是否需要获取所选原始单元格的值? – 2014-12-04 06:35:54

回答

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); 
      } 
     } 
    } 
} 
+0

在我的情况GridTableModel工作:) – 2016-08-25 14:20:47

相关问题