After manually swapping components via add and remove, I invoke validate() on the container. According to the documentation,
The validate method is used to cause a container to lay out its
subcomponents again. It should be invoked when this container’s
subcomponents are modified (added to or removed from the container, or
layout-related information changed) after the container has been
displayed.
The phrase “lay out its subcomponents again” makes me think that the container will resize itself accordingly, but it doesn’t. Instead, after invoking validate(), I need to invoke pack() as well in order to view all its subcomponents.
Why is this? Am I doing something wrong?
(may be due this ambiguity the description is changed in latest javaDoc )
JavaDoc 7 is NOT saying,
so its only laying the components, whereas you need a
pack()again.Note that pack() clearly says,