Я начал с использования различных вложенных макетов, затем перешел к GridBagLayout (что довольно неприятно). С тех пор я попробовал FormLayout (но обнаружил, что он не подходит ни для чего, кроме форм) и твердо остановился на TableLayout, которым в целом я очень доволен.
С тех пор я обнаружил MiGLayout, и хотя я не стал делать больше, чем просто поиграть с ним, он кажется очень способным, очень похож на TableLayout и, возможно, немного чище.
Большим плюсом для меня является то, что MiGLayout собирается стать частью JDK, поэтому я намерен использовать его в значительной степени исключительно тогда, когда он это делает.
Еще одна вещь, которую следует помнить, это то, что независимо от того, на каком тяжелом LayoutManager вы остановились, всегда найдется место для некоторых более простых менеджеров компоновки, таких как GridLayout. Я видел некоторые ужасные вещи, сделанные с помощью GridBagLayout, которые можно было бы сделать гораздо проще с помощью более простого менеджера компоновки.