2012-10-26 130 views
0

我有一個JTable,它是與JTextField輸入相關的過濾。它僅基於第一個字符來篩選行。例如,如果我的第2列具有值:JTable的高級過濾器

VALUES PARAMETER 
PARAMETER VALUES 
. 
. 

當我V型進JTextField中就會顯示出一行VALUES PARAMETERPARAMETER VALUES離開該行,我需要一個先進的過濾器,這樣當我V型這將是能夠給我看兩行或有一個名稱與JTextField中輸入的值開始的其他行:這裏是我的過濾器......(部分)

jtfSearch.getDocument().addDocumentListener(new DocumentListener() { 
     public void changedUpdate(DocumentEvent e) { 
      newFilter(); 
     } 

     public void insertUpdate(DocumentEvent e) { 
      newFilter(); 
     } 

     public void removeUpdate(DocumentEvent e) { 
      newFilter(); 
     } 
    }); 

我的篩選方法:

public void newFilter() { 
    RowFilter< MyTableModel, Object> rf = null; 
    try { 
     rf = RowFilter.regexFilter("^" + jtfSearch.getText(), 1); 
    } catch (Exception as) { 
     System.err.println(as); 
     return; 
    } 
    sorter.setRowFilter(rf); 
} 

這是一個正則表達式過濾器的問題,或者我該怎麼做?

+0

我不知道我明白了! – ErrorNotFoundException

+1

'我需要一個高級過濾器,這樣當我鍵入V時,它將能夠向我顯示兩行或任何其他行,其中有一個名稱以在JTextField中鍵入的值開頭---您是否意指自動完成? ?? – mKorbel

+0

不自動完成..我認爲我的問題是正則表達式中的'^'。 – ErrorNotFoundException

回答

3

我假設jtfSearch.getText()從整行返回文本,這是正確的嗎?如果是這樣,那麼推測這個問題只是在你的正則表達式開始時有"^",把它拿出來,它應該匹配整行內容的任何地方。