Проблема в Java GUI - PullRequest
       13

Проблема в Java GUI

0 голосов
/ 06 января 2010

Прежде чем читать о моей проблеме, сначала посмотрите на GUI Diagram .

Вверху расположены три бара:

  • с кнопками «графическое представление», «текстовое представление» и т. Д.
  • секунда с кнопками «процессы», «организация» и т. Д.
  • третий имеет кнопки «приложение к процессам» и т. Д.

После этого появятся две информационные полосы.

После этого в окне холста отображается диаграмма.

Теперь я хочу подобный GUI со следующими функциями (относительно диаграммы выше):

  • Сначала появляется только первая полоса, а под ней появляется белый холст без диаграммы, растекающийся по всему графическому интерфейсу.

  • Когда пользователь нажимает кнопку «графический вид», вторая полоса появляется под первой полосой, и после этого тот же холст без диаграммы, растекающейся по оставшемуся пространству

  • Когда пользователь нажимает кнопку «приложение» на второй панели, под второй панелью появляется третья панель, после чего тот же пустой холст распространяется по оставшемуся пространству в графическом интерфейсе. 1032 *

Я попытался реализовать это, сначала имея «главную панель» с BorderLayout. После этого, как показано на следующем рисунке:

mainPanel(Border Layout)
|
|--topPanel (at NORTH of the mainPanel's Border Layout)
|
|
|--centerPanel (at CENTER of the mainPanel's Border Layout)

topPanel - содержит все полосы (полосы должны добавляться динамически, когда пользователь нажимает на кнопку)

centerPanel - содержит холст и автоматически регулирует его размер при добавлении новых полос в topPanel

Ответы [ 2 ]

2 голосов
/ 06 января 2010

Я бы использовал BorderLayout для приложения с панелями инструментов в северной панели.

В этой северной панели я бы дал вертикальную BoxLayout и поместил бы 3 панели инструментов в 3 последовательных блока. Это должно заботиться о геометрии.

Я не уверен, что если сделать панель инструментов невидимой, она не займет место, но это будет самым простым. Кроме того, вы можете динамически add() / remove() панели инструментов из северной панели.

0 голосов
/ 06 января 2010

Другая альтернатива - использовать MigLayout , где вы можете добавить столько «компонентов», сколько вам нужно, в «верх». Установив параметр «hidemode», вы можете указать, как пространство будет занимать невидимые компоненты.

В общем MigLayout гораздо более гибок практически для любой задачи и может использоваться вместо любой стандартной раскладки или комбинации раскладок

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