Volevo creare un edito in java che abbia le seguenti funzionalità

Colora determinate parole chiavi
ha ilcopia incolla e l'undo e il redo

Volevo sapere quale classe java mi permette di fare tutto ciò

io conosco la classe

DefaultStyledDocument

e

JTextArea

Mi sembra però che nessuna delle due classi soddisfi tutti i requisiti
Esistono altre classi?