Как я могу повторно использовать мой JFrame для отображения нескольких графических интерфейсов один за другим вместо создания нового JFrame для каждого? - PullRequest
1 голос
/ 27 августа 2011

Я разработал свой Java-код в Netbeans, и теперь я хочу разработать графический интерфейс для своего приложения.

Приложение связывается с сервером, поэтому у него наверняка будет фрейм входа. После этого будет основной кадр. Из основного кадра пользователь может выбрать, куда идти, и, как вы понимаете, будет много кадров.

Я уже разработал версию приложения, в которой много фреймов и использую "setVisible ()", но я хочу что-то более привлекательное Я хочу стабильную раму и внутри нее, меняющую панели или что-то подобное.

Как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Вы можете в любое время превратить любой объект-контейнер в ContentPane JFrame. Вы также можете добавлять и удалять контейнеры из любого другого контейнера. Если вы хотите, чтобы пользователь мог в любой момент перейти к любой из дюжины панелей, CardLayout, как предлагается в другом ответе, - это, пожалуй, лучший маршрут. Однако, если вы намереваетесь провести пользователя по несколько контролируемому пути, вы можете начать с входа в систему JPanel. Когда это будет сделано, вы можете создать следующую панель (JPanel или что-то еще), добавить ее и избавиться от первой. И так до тех пор, пока пользователь не выйдет.

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

2 голосов
/ 27 августа 2011

Вы можете использовать JInternalFrames, если они вам нравятся, или просто использовать главную панель с CardLayout и отображать соответствующую карту в зависимости от выбранного элемента меню или выбранного узла JTree (как это делается в Windows Explorer и аналогичных приложениях) .

Используйте учебник Swing , чтобы начать работу.

...