Какой менеджер раскладки вы используете? - PullRequest
18 голосов
/ 22 сентября 2008

Какой диспетчер компоновки Java-интерфейса используется всеми? В последнее время я использую MigLayout , который имеет несколько мощных компонентов управления. Просто хотел посмотреть, что используют другие разработчики, кроме стандартных JDK.

Ответы [ 22 ]

2 голосов
/ 23 сентября 2008

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

См. http://developer.java.sun.com/developer/onlineTraining/GUI/AWTLayoutMgr

1 голос
/ 10 октября 2008

Я начал с использования различных вложенных макетов, затем перешел к GridBagLayout (что довольно неприятно). С тех пор я попробовал FormLayout (но обнаружил, что он не подходит ни для чего, кроме форм) и твердо остановился на TableLayout, которым в целом я очень доволен.

С тех пор я обнаружил MiGLayout, и хотя я не стал делать больше, чем просто поиграть с ним, он кажется очень способным, очень похож на TableLayout и, возможно, немного чище.

Большим плюсом для меня является то, что MiGLayout собирается стать частью JDK, поэтому я намерен использовать его в значительной степени исключительно тогда, когда он это делает.

Еще одна вещь, которую следует помнить, это то, что независимо от того, на каком тяжелом LayoutManager вы остановились, всегда найдется место для некоторых более простых менеджеров компоновки, таких как GridLayout. Я видел некоторые ужасные вещи, сделанные с помощью GridBagLayout, которые можно было бы сделать гораздо проще с помощью более простого менеджера компоновки.

1 голос
/ 23 сентября 2008

Я всегда был большим поклонником GridBagLayout. Он очень похож на HTML-таблицы, поэтому интуитивно понятен этим веб-программистам.

1 голос
/ 22 сентября 2008

Я также использовал GroupLayout . Опять же, это стандартный менеджер компоновки JDK для Java6, но вы также можете найти библиотеку отдельно.

1 голос
/ 22 сентября 2008

Пружинная компоновка , разработанная для конструктора мантиссы GUI, являющейся частью netbeans.

1 голос
/ 17 апреля 2009

Я предпочитаю минимизировать зависимости от сторонних библиотек, поэтому обычно это BoxLayout для диалогов и GridBagLayout для «сложных» макетов. GridBagLayout достаточно прост для понимания, но его немного сложно настроить. Я написал инструмент для создания кода из HTML-макетов (надеюсь, это поможет и другим): http://www.onyxbits.de/content/blog/patrick/java-gui-building-gridbaglayout-manager-made-easy

0 голосов
/ 21 ноября 2013

Мне надоели все те менеджеры компоновки, которые нуждались во многих настройках, не очень удобных для чтения или изнурительных, чтобы делать это вручную, поэтому я написал свой очень простой laoutmanager, который использует абстракцию двух фотоуголок, поддерживающих каждый компонент на месте. Вы можете добавить свой компонент так: parent.add(child,"topleft(0, 0.5)bottomright(0.5,1.0)");

Посмотрите здесь https://github.com/hageldave/UsefulStuff/blob/master/src/PhotoCornersLayout.java;) Вы сами отвечаете за правильную компоновку, потому что она не проверяет перекрытия или другие недостатки макета.

0 голосов
/ 23 сентября 2008

Единственный найденный мной менеджер макетов, который мне нравится , - это Менеджер относительных компоновок . Диспетчер относительной компоновки работает таким образом, чтобы согласованно организовывать диалоговые окна . Недостатком является то, что в то время как этот менеджер компоновки имеет дело с аддитивными ограничениями. Похоже, что не имеет дело с ограничениями отношения. К счастью, он довольно хорошо спроектирован, и мне удалось реализовать эту функцию.

0 голосов
/ 30 октября 2009

Я недавно начал использовать Swing и использую GridBagLayout.

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

Я использую GridBagLayout для форм, подобных макетам, использую BorderLayout для простых макетов и FlowLayout для числа горизонтальных значков / кнопок, между которыми есть пробелы. Netbeans также является хорошим компоновщиком графического интерфейса, который позволяет избежать множества утомительных кодировок макетов, чтобы сэкономить ваше время.

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