Ê tópico ruim, já passou da hora de trancar. Programador Delphi cada vez mais se parece com os Clipeiros de alguns anos atrás.
Uma aplicação Java tem que rodar em várias plataformas, e os componentes da tela (botões, labels, caixas de texto, radios, etc.) usam fontes diferentes, têm altura e largura diferentes, espaçamentos diferentes, etc. Como posicionar os componentes absolutamente, em grades, no estilo do Delphi e VB, nessa situação? Simplesmente não dá.
Para resolver esse tipo de problema é que existe o conceito de gerenciadores de layout (conceito que existe em outras plataformas, além do Java). Usando um layout manager, você dá “dicas” de como os componentes vão ser dispostos na tela e o gerenciador se encarrega de posicionar os componentes na tela, cuidando de dimensionar e espaçar os componentes de acordo com o que prega o Look&feel usado.
Funciona perfeito? Claro que não, é por isso que existem vários layouts disponíveis no Java, ao longo dos anos foram sendo criados layouts para atender às necessidades de criação de diferentes tipos de telas e à necessida de facilitar o trabalho do programador. E o suporte aos Look&feels sempre foi sofrível (a eterna discussão do “não nativo o suficiente”), com bugs, gerando inclusive Look & feels de terceiros, como o Winlaf e o Quaqua, dedicados a corrigir os pontos em que a implementação fornecida com a JRE implementa de forma incorreta os padrões esperados.
A última evolução é o GroupLayout, incluído no Java 6, que posiciona os componentes relativos uns aos outros, ao longo de eixos, que é mais intuitivo e natural para o programador, porque é muito semelhante a usar o sistema de grades do Delphi e do VB, mas mantendo o suporte a múltiplas plataformas.