Gui - Лучший способ навигации между окнами? - PullRequest
3 голосов
/ 26 ноября 2008

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

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

Спасибо.

Ответы [ 4 ]

2 голосов
/ 26 ноября 2008

Я рекомендую

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

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

  • Visual Studio
  • Затмение
  • Firefox
1 голос
/ 26 ноября 2008

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

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

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

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

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

1 голос
/ 26 ноября 2008

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

demo

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

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

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

SwingXDemo

1 голос
/ 26 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...