We've used a somewhat obscure Java class, Highlighter, to elaborate a bit on the way Java Documents work, and created a tiny application for doing parenthesis matching. There are a lot of cases left to cover in this simple project:
Multithreading and thread safety, in case finding the previous matching parenthesis takes a long time
Custom painters, such as a "marching ants" painter
How Positions work
How Views and StyledDocuments allow really complicated syntax highlighting
Tool tips for syntax suggestions
These topics will just have to wait for another column.