¿Cómo resaltar parte de un JLabel?

Antes de que alguien sugiera HTML, explico más tarde por qué esa no es una opción aquí. Tengo una tabla que contiene una columna con celdas de texto. Necesito poder resaltar parte del texto en cada celda. Entonces, por ejemplo, si la celda contuviera "gato, perro, perro" ... podría querer resaltar a perro.

Mi método actual es usar un TableCellRenderer personalizado que coloca html en un componente JLabel que se procesa y por un tiempo fue bueno. Luego noté que cuando el texto en la celda se hacía demasiado largo para caber en el ancho de la columna, simplemente truncaba el texto sin el "..." normal que sucede normalmente en este caso. Por lo tanto, los usuarios no sabían que había más texto que no estaban viendo. El otro problema era que si el texto original en sí contenía HTML, que en mi caso lo hace a veces, la celda no se representaría correctamente. Sé que podría escapar del html pero todavía tendría el problema anterior.

Si uso un componente que no sea un jlabel, entonces las celdas de mi tabla se ven extrañas. ¿Alguien tiene alguna sugerencia? Gracias