You can try JIDE Charts as a starting point. I have used JIDE Charts and really like the package. It's very modular and easy to use. We actually created and maintain a charting package which implements features like you describe. We created a custom solution, which was very appropriate for our application. I only discovered JIDE Charts recently, but my first impression was actually that we probably could have built almost our whole package using that library as a foundation.
Another option would be JFreeChart. I have not used JFreeChart personally, but another person on my team at work is using it and getting decent results.