2011-12-06 7 views
2

Я пытаюсь сделать подобное слайд-шоу приложение на Java, используя NetBeans.Удаление JPanel внутри JPanel ... внутри JPanel

У меня есть 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.

Что мне делать, чтобы исправить это?

EDIT: Благодарим всех, кто ответил. Я попробовал CardLayout на фиктивный проект, и он работал нормально. Теперь все, что мне нужно сделать, это добавить его в оригинальный. Еще раз спасибо. :)

ответ

5

Я предлагаю использовать CardLayout для этого, а также добавлять и удалять JPanels на Runtime примере для CardLayout и вместе с вашей идеей может быть here

+0

Спасибо за быстрый ответ. Я посмотрю и изучу его. – alxcyl

+0

Большое спасибо. Я попробовал, и это сработало. :) – alxcyl

+0

рад помочь вам – mKorbel

5

Я предлагаю вам использовать другой менеджер компоновки (например CardLayout) ; пусть менеджер компоновки беспокоится о том, чтобы перехватить его компоненты.

+0

Спасибо за быстрый ответ. Я посмотрю и изучу его. – alxcyl

+0

Большое спасибо. Я попробовал, и это сработало. :) – alxcyl

Смежные вопросы