2012-10-26 187 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()从整行返回文本,这是正确的吗?如果是这样,那么推测这个问题只是在你的正则表达式开始时有"^",把它拿出来,它应该匹配整行内容的任何地方。