Posicionando componentes nas GUIs do Swing

Eu tenho algumas perguntas sobre componentes de posicionamento e algumas questões sobre campos de texto e áreas de texto (Java Swing). Qualquer ajuda é muito apreciada.

No momento, estou tentando ter dois campos de texto lado a lado com um rótulo diferente, acima de cada um, descrevendo o que esse campo de texto faz. Para conseguir isso eu os coloquei em umGridLayout(2, 2).

É este o melhor caminho? É a única maneira que sei ter um rótulo diretamente sobre outro componente. Existe uma maneira melhor? E se houver apenas um rótulo acima de um botão? É sensato posicionar isso através de umGridLayout(2, 1)? Sou deficiente visual, portanto, não acho que posicionar botões apenas pela posição de pixel seja uma opção, a menos que haja uma maneira simples de colocar os componentes em um número relativo de pixels em outro componente.

Isso me leva à minha próxima pergunta. Qual é a melhor maneira de ter a mesma interface do usuário acima, mas com outro componente (botão) centralizado sob ela. Essencialmente, a interface do usuário deve compor de dois campos de texto nomeados com um botão de calcular em. A maneira que eu fiz isso foi colocando os componentes acima em um painel, e adicionando isso mais o botão calcular a um painel ao redor com umGridLayout(2, 1). O problema é que o botão se torna tão grande quanto o painel acima (suponho). Como posso ajustar isso e ainda ter o botão perfeitamente alinhado sob o painel de campos / rótulos de texto? Da mesma forma, com rótulos acima das áreas de texto. O rótulo deve ser pequeno, mas ter um espaço maior para a área de texto abaixo.

(campo de texto): Novamente, referindo-se à interface do usuário acima, se o usuário digitar muitos caracteres no primeiro campo de texto, as letras passarão pelo campo de texto à direita? Se sim, como posso evitar isso?

Se eu acrescentar texto a uma área de texto e ela já estiver cheia, ela permitirá que o usuário role automaticamente? Se não, o que é uma maneira simples de tornar a área de texto rolável?

Agora eu não estou definindo um tamanho da área de texto. Isso apenas cresce quando eu adiciono texto? Tem um tamanho padrão como em número de caracteres?

questionAnswers(2)

yourAnswerToTheQuestion