CMP
CMP

Reputation: 435

Filter JTable only one one column

I have a JTable and I would like to do a filter from a JTextfield but only filter the results based on one column and not to search all columns.

I have my JTable I can filter but my filter will filter and search every column of the table I want to restrict it to one column

Can it be done ?

Upvotes: 8

Views: 12210

Answers (3)

kleopatra
kleopatra

Reputation: 51524

listen to changes in the textFields document and set the appropriate rowFilter limited to the column you want to filter:

 // on document change
 RowFilter rowFilter = RowFilter.regexFilter(textField.getText(), myColumn);
 table.getRowSorter().setRowFilter(rowFilter);

(type-cast and guard against empty textfield ommitted)

Upvotes: 15

StanislavL
StanislavL

Reputation: 57381

You can extend envelope table model like this http://java-sl.com/envelope.html and leave only necessary rows.

Upvotes: 1

jzd
jzd

Reputation: 23629

Keep a master copy of all the rows (or supporting data) in the background.

When searching, take the search criteria from the text field and rebuild the table model by only adding items that match the criteria. If the text field is empty then add all rows.

Upvotes: 1

Related Questions