1) Установка предпочтительного размера на ноль должна привести к сбросу компонента обратно к получению его предпочтительного размера, рассчитанного, как если бы он никогда не был установлен.
component.setPreferredSize(null);
Это может не делать то, что вы хотите, в зависимости от того, как вы сигнализируете, что макет должен быть переделан, но, по крайней мере, технически это ответ на ваш вопрос.
2) Обычно рекомендуется не использовать setPreferredSize, см. этот пост