Используйте BorderLayout. Разместите детальную панель на юге и сделайте ее невидимой. Затем, когда вы нажимаете кнопку «Подробности», вы устанавливаете панель видимой и упаковываете () рамку. Или, если вы не хотите, чтобы фрейм изменял размер, вам нужно будет повторно проверить () и перекрасить () родительский контейнер.