Gui - лучший способ перемещаться между окнами?

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

Мой вопрос в том, что является наилучшей практикой для достижения такой навигации? Должен ли я создавать несколько JFrame и включать/выключать их видимость при навигации ИЛИ мне лучше иметь один JFrame и добавлять/удалять JPanels в этом отдельном фрейме для навигации между окнами?

Спасибо.


person flash    schedule 26.11.2008    source источник


Ответы (4)


Если каждое из ваших окон соответствует отдельной задаче (возможно, вложенной), вы можете представить свое приложение как SDI с левой панелью задач, например:

демонстрация

Каждая задача будет отображать один JFrame со связанным окном.

Другое решение: оглавление нравится эта картинка слева

(примечание: на самом деле он также отображает панель задач в этом примере справа внизу)

SwingXDemo

person VonC    schedule 26.11.2008
comment
Какой LaF использует первый скриншот? - person wchargin; 09.06.2013
comment
@WChargin из старого (2007 г.) проекта l2fprod: l2fprod.com/common/learn. php - person VonC; 09.06.2013

я рекомендую

  • не делайте MDI-приложение с подфреймами, подобными тем, что использовались в старые времена Windows. Они отстой, поскольку они делают дело запутанным.
  • Создайте интерфейс с вкладками. Страница/меню приветствия будут отображаться на первой вкладке, которая всегда создается при запуске.

Все крутые дети делают это в наши дни:

  • Визуальная студия
  • Затмение
  • Fire Fox
person Johannes Schaub - litb    schedule 26.11.2008

Множественные JFrames кажутся мне лучшей идеей. Гораздо больше ОО.

person cagcowboy    schedule 26.11.2008

Вы должны найти баланс между этими целями:

  • Не слишком много вещей в одном «окне»
  • Пользователь должен быстро найти нужное окно для выполнения следующего шага работы.
  • Вся важная информация должна быть видна в любое время

Eclipse решает эту проблему, создавая множество небольших редакторов, каждый из которых показывает определенную информацию и позволяет ее изменять. Затем редакторы располагаются в одном окне ОС во вкладках и «представлениях». Вид всегда полностью виден и их можно упорядочить. Думайте о представлении как о способе разрезать существующий редактор пополам (по горизонтали или по вертикали), а затем заменить одну из половин другим редактором. Между каждой половиной у вас есть разделитель, чтобы вы могли регулировать размеры.

Затем расположение видов сохраняется в «перспективах».

Это позволяет каждому пользователю создать перспективу, содержащую все необходимые редакторы одновременно, расположить их по своему усмотрению и эффективно работать.

person Aaron Digulla    schedule 26.11.2008