簡體   English   中英

獲取JTable中所有選定行的單元格值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM