2016-02-09 1 views
0

Когда приложение выполняется, например, JFrame создается и заполняется некоторым содержимым; если конечный пользователь затем делает какой-то выбор, который повторно заполняет панель содержимого JFrame, если программист должен убедиться, что исходный контент удален до добавления вновь выбранного контента или это не имеет значения?установка и удаление JFrame.setContent

+2

Не могли бы вы использовать код, который вы используете для этого сейчас? Как правило, если вы добавляете компоненты в фрейм, тогда вам нужно их изменить, вы можете удалить компоненты, добавить новые, затем вызвать revalidate() или использовать макет карты и изменить отображаемый компонент. – dbrown93

+0

Спасибо, dbrown93, за ваш время. Эта информация помогает мне в моем путешествии. –

ответ

4

Простейшее и лучшее решение: используйте инструмент, специально предназначенный для этой работы - CardLayout. Это позволит вам легко сменять JPanel или другие «взгляды» с легкостью. Если представление всегда меняется на другое конкретное представление, это может быть так же просто, как позвонить next() на CardLayout. Если вам нужна возможность поменять местами на несколько возможных видов, вызовите его метод show(...).

Если вы абсолютно должны сделать замену «вручную», то да, я думаю, вы хотели бы удалить покрытые компоненты из контейнера. Вам также необходимо вручную вызвать revalidate() и repaint() на контейнер после обмена, чтобы все макеты были вызваны и чтобы все грязные пиксели были очищены.

+0

Спасибо, Hovercraft, ваша своевременная обратная связь была очень полезной. –

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