The attached patch conains fixes for two different problems:
1.) We get org.eclipse.swt.SWTError: No more handles when creating a lot of instances. This is because Fonts are not reused now. I introduced SWTResourceManager to cache Font instances. This resolves the problem. It decreases in my test case the OS handles from 800 to 5! When caching them they can not be disposed with the parent widget, but this is no problem, since we hardy create new instances with this cache.
2.) org/swtchart/internal/Title.java there was a call to chart.removePaintListener(this); without checking if chart is already disposed. This can create a SWTException: Widget is disposed.
These two problems are already fixed in the patch, you just have to test and merge them. ;-)
I added a further change to the patch. TextLayout is allocated with Title. But it is often not needed. I changed it to only allocate TextLayout if needed and dispose it after use. This also saves a lot of OS-Handles.