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 ?
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)
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.
You can extend envelope table model like this http://java-sl.com/envelope.html and leave only necessary rows.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With