Alternatively to Norm's good advice, if you don't mind veering away from Java (only a little bit), you could try using Processing to create what you need, as with any other language of-course.
It's...