JTable的高级过滤器

时间:2012-10-26 08:24:05

标签: java regex swing jtable rowfilter

我有一个与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);
}

这是正则表达式过滤器的问题还是我应该怎么做?

1 个答案:

答案 0 :(得分:3)

我假设jtfSearch.getText()返回整行的文本,这是正确的吗?如果是这样,那么问题可能只是你在正则表达式的开头有"^",把它取出来它应该匹配整行内容中的任何地方。