Кодирование GUI вручную должно быть предпочтительным способом (по крайней мере, для удобства обслуживания).
Есть несколько менеджеров разметки Swing с открытым исходным кодом, которые довольно хороши в этом.
Кто-то упоминал, что MigLayout, который позволяет использовать любой макет, довольно прост в использовании, но часто требует некоторой настройки, пока вы не получите то, что хотите.
С другой стороны, вы также можете использовать DesignGridLayout , который подходит для большинства распространенных макетов и более прост в использовании (благодаря свободному API), чем MigLayout.