как использовать менеджеры компоновки в Swing Java - PullRequest
3 голосов
/ 29 апреля 2011

Я новичок в менеджерах компоновки, таких как Flow, borders, ...
В основном я использую setBounds() для установки положения своих компонентов.

Я читал статьючто использование setBounds является не хорошей практикой и лучше использовать какой-либо макет.

Какие макеты являются лучшими и наиболее часто используемыми?
Как позиционировать кнопку с помощью менеджеров раскладки ;вместо setbounds(10,10,100,30)?

Ответы [ 3 ]

5 голосов
/ 29 апреля 2011

смотрите здесь: http://download.oracle.com/javase/tutorial/uiswing/layout/using.html

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

1) Есть ли в вашем дизайне "главная" область с меньшими окружающими областями. Если это так, используйте BorderLayout.

2) Есть ли в вашем дизайне равные области, подобные сетке, если так, используйте GridLayout.

3) Если вам нужен макет сверху вниз или слева направо, рассмотрите BoxLayout

4) Если вы хотите показать сложную форму, возможно, используйте FormLayout от jgoodies.

Но вы должны смотреть на вещи с высокого уровня. В любом разделе верхнего уровня вашего диалога могут быть подразделы. Если это так, то вам нужно поместить JPanel в этот раздел, а затем использовать вспомогательный макет в этом JPanel. Используйте приведенные выше вопросы снова для этой панели.

2 голосов
/ 29 апреля 2011

.. Какой макет самый лучший и наиболее используемый (?)

Вложенные макеты. Используйте любой макет, который лучше всего подходит для различных групп компонентов графического интерфейса, затем поместите их в панели внутри других панелей (с другими макетами). Посмотрите этот пример Nested Layout для демонстрации. объединения макетов.

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

Я обычно буду использовать вложенные комбинации BorderLayout, GridLayout и FlowLayout, иногда GridBagLayout.

2 голосов
/ 29 апреля 2011

Помимо "стандартных" макетов Swing (часть JDK), существует множество сторонних (в основном с открытым исходным кодом) LayoutManager с, которые часто намного лучше, чем Swing.

Для сравнения многих LayoutManager на реальном примере (с кодом), посмотрите эту ссылку , хотя она немного устарела, но все же показывает различные функции и простоту использования преобладающих LayoutManager в наши дни.

В общем, я бы посоветовал DesignGridLayout , который, хотя и достаточно мощный, очень прост в использовании (вам не нужен графический дизайнер для использования и легко поддерживать код компоновки существующих панелей); это займет всего один час, чтобы понять это.

Кроме того, MigLayout считается наиболее гибким (может быть полезно, если вам нужны очень сложные макеты), но для привыкания к нему требуется больше времени, а иногда вам приходится использовать "трюки" «чтобы все заработало как надо.

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