[英]Get cell values of all selected rows in 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]); } }
如果可以在此迭代期间获取像元值,那将是理想的选择,但是经过大量搜索之后,我还没有找到一种方法。 只要最终结果相同,任何其他方式都可以。 关于实现此目的的最有效方式的任何想法将不胜感激。
好吧,你可以这样尝试。
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);
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.