あなたの質問を正しく理解できれば、RowFilter
クラスはあなたが必要とすることを正確に行うはずです。setAutoCreateRowSorter(true)
これは、最初に JTable を呼び出した場合にのみ機能することに注意してください。
private void updateFilter() {
final String prefix = textField.getText().toLowerCase();
((TableRowSorter<?>) table.getRowSorter()).setRowFilter(
new RowFilter<Object, Integer>() {
public boolean include(Entry<?, ? extends Integer> entry) {
String name = entry.getStringValue(COLUMN_LASTNAME);
return name.toLowerCase().startsWith(prefix);
}
});
}
DocumentListener からメソッドを呼び出す必要があります。
searchTextField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent event) {
updateFilter();
}
public void insertUpdate(DocumentEvent event) {
updateFilter();
}
public void removeUpdate(DocumentEvent event) {
updateFilter();
}
});