我有一个与JTextField输入相关的过滤器。它只是基于第一个字符的Filtering Rows。例如,如果我的列2具有值:
VALUES PARAMETER
PARAMETER VALUES
.
.
当我在JTextfield中键入V时,它会显示VALUES PARAMETER
行并将行留给PARAMETER 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 :(得分:3)
我假设jtfSearch.getText()
返回整行的文本,这是正确的吗?如果是这样,那么问题可能只是你在正则表达式的开头有"^"
,把它取出来它应该匹配整行内容中的任何地方。