I have been using a longstanding, well-supported Java 2D drawing
toolkit called Piccolo2D (
http://www.piccolo2d.org/index.html). Here
is some text from its home page:
-----
Piccolo2D is a toolkit that supports the development of 2D structured
graphics programs, in general, and Zoomable User Interfaces (ZUIs), in
particular. A ZUI is a new kind of interface that presents a huge
canvas of information on a traditional computer display by letting the
user smoothly zoom in, to get more detailed information, and zoom out
for an overview. We use a "scene graph" model that is common to 3D
environments. Basically, this means that Piccolo2D maintains a
hierarchal structure of objects and cameras, allowing the application
developer to orient, group and manipulate objects in meaningful ways.
Why use Piccolo2D? It will allow you to build structured graphical
applications without worrying so much about the low level details. The
infrastructure provides efficient repainting of the screen, bounds
management, event handling and dispatch, picking (determining which
visual object the mouse is over), animation, layout, and more.
Normally, you would have to write all of this code from scratch.
Additionally, if you want to build an application with zooming, that's
built right into the framework too.
What exactly is it? Piccolo2D is a layer built on top of a lower level
graphics API. There are currently three versions of the toolkit:
Piccolo2D.Java, Piccolo2D.NET and PocketPiccolo2D.NET (for the .NET
Compact Framework). The java version is built on Java 2 and relies on
the Java2D API to do its graphics rendering. The .NET version is built
on the .NET Framework and relies on the GDI+ API to do its graphics
rendering. This makes it easy for Java and C# programmers, even those
targeting PDAs, to build their own animated graphical applications.
And best of all, Piccolo2D is free and open source!
-----
I've been using it with good results; you will need to evaluate it for
your purposes. Good luck, and have fun!
--Gregg