Java 获取JTable中所有选定行的单元格值
我试图弄清楚如何遍历JTable的行并获取单元格值。如果选择了行(可以选择多行),将值传递给方法,然后继续迭代。表行包含用户输入的值。行被添加到表中,当用户输入每个条目时,表在UI中逐个显示。这些条目由一个整数和两个双精度组成。int表示该类型,两个double被添加到该类型的两个运行计数(数量和体积)中,以便在应用程序的其他地方使用。如果用户选择一行(或多行)并按Delete键,则这些行将从表中删除。删除行的值也需要从运行计数中扣除。为了删除行,我将所选行分配给一个数组,并遍历该数组以删除每一行Java 获取JTable中所有选定行的单元格值,java,swing,jtable,Java,Swing,Jtable,我试图弄清楚如何遍历JTable的行并获取单元格值。如果选择了行(可以选择多行),将值传递给方法,然后继续迭代。表行包含用户输入的值。行被添加到表中,当用户输入每个条目时,表在UI中逐个显示。这些条目由一个整数和两个双精度组成。int表示该类型,两个double被添加到该类型的两个运行计数(数量和体积)中,以便在应用程序的其他地方使用。如果用户选择一行(或多行)并按Delete键,则这些行将从表中删除。删除行的值也需要从运行计数中扣除。为了删除行,我将所选行分配给一个数组,并遍历该数组以删除每一
int[] selectedRows = entryTable.getSelectedRows();
if (selectedRows.length > 0) {
for(int i = selectedRows.length - 1; i >= 0; i--) {
entryTable.removeRow(selectedRows[i]); } }
如果有可能在这个迭代过程中获得单元格值,那将是理想的,但是经过广泛的搜索,我还没有找到这样做的方法。只要最终结果相同,任何其他方法都可以。任何关于实现这一目标的最有效方法的想法都将不胜感激。您可以这样尝试。
你可以这样试试。
当你删除一行时,所有的索引都会改变…我会,首先统计所选行的总数,这可以在一步中扣除,然后,我会,以相反的顺序,删除这些行…你需要获得所选原始的单元格值吗?当你删除一行时,所有的索引都会改变…我会,首先统计所选行的总数,这可以在一个步骤中扣除,然后,以相反的顺序删除行…您需要获得所选原始数据的单元格值吗?
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);
}
}
}
}