The difference is basically in the implementation of the add method. It is mostly that in JDK 5.0 the add( ) was just rewritten to delegate its addition of components to the content pane. ie.
public void add(Component c) {
//it simply calls
getContentPane().add( c );
}
Im not exactly sure of this, however, you can check the source code in your jdk directory to see if this is what is done in JFrame
ICE
> Why is there such a different?
Probably because the designers got tired of people asking questions like this.
I can use panel.add(...);
Why do I need to use frame.getContentPane().add(...)?
Don't worry about insignificant issues like this. The API is always evolving.