Как лучше всего выложить эти компоненты в Swing? - PullRequest
5 голосов
/ 09 января 2009

Каков наилучший подход / LayoutManager для JPanel, который необходим для отображения компонентов, показанных на изображении? (Обратите внимание, что при изменении размера окна поля должны изменяться по горизонтали, но не надписи).

В настоящее время я пытаюсь (и изо всех сил) сделать это с помощью GridBagLayout. Это правильный подход или есть лучший способ? Должен ли я пытаться разделить + покорить отдельные секции, может быть?

Будем благодарны за любые мысли или советы. : -)

http://img261.imageshack.us/img261/2091/layouthb6.png

PS Если вы читаете это, а изображения нет, пожалуйста, потерпите меня, пока я это исправлю!

Ответы [ 13 ]

0 голосов
/ 10 января 2009

Раньше я очень не хотел делать макеты свинга, пока Netbeans не выпустили свой графический интерфейс. Вы можете увидеть демо здесь. http://rghosting.co.cc

0 голосов
/ 09 января 2009

Ваш макет выглядит так, как будто он по сути состоит из "линий". Так что лично я бы:

  • Создание вертикального бокса с Box.createVerticalBox (); это сложит свои компоненты вертикально - фактически, вы можете добавить строки
  • Создайте панель для каждой строки: я думаю, что вы можете использовать JPanel с BorderLayout (и метку слева, текстовое поле в качестве центрального компонента) или снова использовать Box.createHor horizontalBox (), а также добавить метку и текст поле с соответствующим минимальным / предпочтительным размером
  • Вы можете добавить "распорку" в вертикальное поле, где вам нужны разделители строк
  • Ваша линия с двумя группами меток / полей нуждается в особой обработке, но по сути это просто горизонтальный прямоугольник с ДВУМИ из ваших "линий" внутри.

Лично я никогда не касаюсь GridBagLayout полюсом баржи. Может быть, это только я, но я считаю, что параллельные алгоритмы и программирование машинного кода проще, чем понимание GridBagLayout ...

0 голосов
/ 09 января 2009

TableLayout будет моим выбором, вы можете использовать константы, такие как TableLayout.FILL для автоматического изменения размера и указать ширину пикселя для фиксированной.

TableLayout

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