Java 如何筛选JTable中的行?

Java 如何筛选JTable中的行?,java,swing,jtable,rowfilter,Java,Swing,Jtable,Rowfilter,我有一个JTable,里面有很多字符串。我在表的上方为用户输入创建了一个文本框。我想要一个行过滤器,它可以删除用户在文本框中输入字符串的行。请帮我解决这个问题。从这里开始: 在下面的示例代码中,您可以 显式创建一个sorter对象,以便 您可以稍后使用它来指定 过滤器: MyTableModel model = new MyTableModel(); sorter = new TableRowSorter<MyTableModel>(model); table = new JTab

我有一个JTable,里面有很多字符串。我在表的上方为用户输入创建了一个文本框。我想要一个行过滤器,它可以删除用户在文本框中输入字符串的行。请帮我解决这个问题。

从这里开始:

在下面的示例代码中,您可以 显式创建一个sorter对象,以便 您可以稍后使用它来指定 过滤器:

MyTableModel model = new MyTableModel();
sorter = new TableRowSorter<MyTableModel>(model);
table = new JTable(model);
table.setRowSorter(sorter);
MyTableModel=newmytablemodel();
分拣机=新的表格行分拣机(型号);
表=新JTable(型号);
表.SetRow分拣机(分拣机);
然后根据当前值进行过滤 文本字段的值:

private void newFilter() {
    RowFilter<MyTableModel, Object> rf = null;
    //If current expression doesn't parse, don't update.
    try {
        rf = RowFilter.regexFilter(filterText.getText(),0);
    } catch (java.util.regex.PatternSyntaxException e) {
        return;
    }
    sorter.setRowFilter(rf);
}
private void newFilter(){
RowFilter rf=null;
//如果当前表达式未解析,则不更新。
试一试{
rf=RowFilter.regexFilter(filterText.getText(),0);
}catch(java.util.regex.PatternSyntaxException e){
返回;
}
分拣机。设置行过滤器(rf);
}

您可以使用
JTable.setAutoCreateRowSorter
,它将使用
JTable
的默认行分类器/过滤器从kd304中提取注释,您可以使用。在这里,您将使用FilterList作为JTable的输入,FilterList将处理其余部分。

这几行解决方案似乎可以工作:

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) 
{                                            
    TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(((DefaultTableModel) jTable1.getModel())); 
    sorter.setRowFilter(RowFilter.regexFilter(jTextField1.getText()));

    jTable1.setRowSorter(sorter);
}  
private void jtextfield1AActionPerformed(java.awt.event.ActionEvent evt)
{                                            
TableRowSorter-sorter=新的TableRowSorter(((DefaultTableModel)jTable1.getModel());
sorter.setRowFilter(RowFilter.regexFilter(jTextField1.getText());
jTable1.设置行分拣机(分拣机);
}  

您想只显示带文本的行还是不显示带文本的行?如果允许,您可以使用GlazedList。它有关于自动完成和表过滤的示例。