Я пытаюсь создать в Java приложение, похожее на слайд-шоу, используя NetBeans.
У меня есть JFrame (главное окно), и внутри него есть две кнопки (назад и далее) для навигации и JPanel (mainPanel
), который действует как держатель «слайдов» приложения. Я также использую пользовательские объекты JPanel (SlidePanel
), которые затем помещаются внутри mainPanel
. Некоторые из этих SlidePanel
объектов имеют внутри JPanels.
Теперь я смог поместить эти SlidePanel
объекты в mainPanel
и также перемещаться по ним (например, если я нажму следующую кнопку, SlidePanel 1
будет заменен на SlidePanel 2
, или если я нажму кнопку «назад», SlidePanel 2
будет заменен на SlidePanel 1
.) Я сделал это, используя методы removeAll()
, revalidate()
и repaint()
.
Проблема начинается здесь. Третий SlidePanel
объект содержит JPanel внутри него. Что происходит, когда вы добираетесь до третьего SlidePanel
, все работает нормально. Но оттуда, если вы нажмете кнопку «назад» (которая возвращает вас к SlidePanel 2
), JPanel из SlidePanel 3
останется на экране, а компоненты внутри SlidePanel 2
отрегулированы так, чтобы соответствовать mainPanel
.
Что мне сделать, чтобы это исправить?
РЕДАКТИРОВАТЬ: Большое спасибо всем, кто ответил. Я попробовал CardLayout на фиктивном проекте, и он работал нормально. Теперь все, что мне нужно сделать, это добавить его к исходному. Еще раз спасибо. :)