2014-04-04 74 views
0

我想從篩選行中檢索一些數據。
這是我篩選我的表:jTable從篩選行中獲取數據

String makeText = makeFilterCombo.getSelectedItem().toString(); 
    if (makeText == "All") { 
     makeText = ""; 
    } 

    String numar = getEssRegex(); 

    String impact = impactBox.getSelectedItem().toString(); 
    if (impact == "All") { 
     impact = ""; 
    } 

    TableModel model; 
    model = jTable1.getModel(); 
    final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); 
    jTable1.setRowSorter(sorter); 

    List<RowFilter<Object, Object>> rfs = new ArrayList<RowFilter<Object, Object>>(2); 
    rfs.add(RowFilter.regexFilter(makeText, 2)); 
    rfs.add(RowFilter.regexFilter(numar, 5)); 
    rfs.add(RowFilter.regexFilter(impact, 9)); 

    RowFilter<Object, Object> af = RowFilter.andFilter(rfs); 

    sorter.setRowFilter(af);  

而且這是我嘗試從過濾的行得到的值:

int f = search(connectedCarIndex); 

    connectedImage1 = jTable1.getModel().getValueAt(jTable1.convertRowIndexToModel(f), 10).toString(); 
    connectedImage2 = jTable1.getModel().getValueAt(jTable1.convertRowIndexToModel(f), 11).toString(); 
    connectedImage3 = jTable1.getModel().getValueAt(jTable1.convertRowIndexToModel(f), 12).toString(); 

    System.out.println(connectedImage1 + "-------" + connectedImage2 + "------" + connectedImage3);  

但這一切工作的?
任何人都可以幫助我嗎? 代碼工作,我可以看到,如果行顯示

+0

問題必須在您的代碼的其餘部分 – mKorbel

+0

如果您確切地指出了問題所在,這將有所幫助。 「但這些都行不通」可能意味着什麼。你期望你的代碼如何表現?它如何表現?有沒有錯誤信息? – MarsAtomic

+0

沒有錯誤,如果顯示行,代碼將起作用。當我點擊一行後,它應該打印出另一行單元格值(現在已經過濾並且未顯示) – Razvan

回答

1
int f = search(connectedCarIndex); 

我不知道搜索(...)方法執行的連接圖像名稱。

如果您正在搜索顯示在表中的數據,那麼你只需使用:

table.getValueAt(...); 

如果您正在搜索的所有存儲在TableModel的數據,那麼你可以使用:

table.getModel().getValueAt(...); 

如果您知道您在搜索什麼,則無需轉換索引。