The above interface won't work if there are already Observer objects out there expecting a class of java.util.Observable... he'd have to implement his own Observer/Observable classes, which would be a waste of time since
Java supplies it's own.
My solution would be to create an inner class that extends Observable and wrap it with your tree model... something like this:
You can then make any other "call-through" methods like addObserver() above that you need. Users of your class call the method on your class and your class calls the method of the wrapped Observable with the parameters passed to it.