2011-04-06 27 views
7

Tengo una JTable y me gustaría hacer un filtro desde un JTextfield pero solo filtrar los resultados basados ​​en una columna y no buscar en todas las columnas.Filtro JTable solo una columna

tengo mi JTable puedo filtrar pero mi filtro filtrar y buscar en cada columna de la tabla quiero restringirlo a una columna

¿Se puede hacer?

Respuesta

12

escuchar a los cambios en el documento campos de texto y establezca el RowFilter apropiada limitado a la columna que desea filtrar:

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

(tipo de fundición y el protector contra el campo de texto vacío omitido)

+0

Muchas gracias esto ha hecho lo que quería resuelto resolvió – CMP

+0

me encantaría votar no soy al Bajó para votar aún :(:(:(pero gracias de nuevo – CMP

+0

@ user692808 puede aceptar la respuesta, ¿o no? Aumentará su reputación, así como la mía :-) – kleopatra

1

Guarde una copia maestra de todas las filas (o datos de apoyo) en el fondo.

Al realizar una búsqueda, tome los criterios de búsqueda del campo de texto y reconstruya el modelo de tabla agregando solo elementos que coincidan con los criterios. Si el campo de texto está vacío, agregue todas las filas.

+0

buena (aunque no trivial para hacerlo bien) para pre1.6, no desde 1.6: mi regla general es usar siempre todo el soporte disponible por cualquier marco, el resto es suficientemente difícil ;-) – kleopatra

Cuestiones relacionadas