Using my experience working on libjcsi, I created a small Java library which implements a monospaced graphical text area to be used as a swing component.
This library was requested by a fellow graduate student who was having issues ensuring monospace support with a decent looking font in a cross-system application. Having seen what libjcsi could do, but wanting a lighter weight component that could be included in a Swing GUI more easily, he asked me to work on the problem.
Using a graphics pane to render the fonts means that any font can be used and it will become monospaced. Naturally some fonts look better in this configuration than others, but through a combination of intelligently calculating likely character sizes to be used and centering of said characters in their space, the renderings look at least decent for most fonts.
