Posicionamiento de componentes en Swing GUIs

Tengo algunas preguntas sobre los componentes de posicionamiento y algunas preguntas sobre campos de texto y áreas de texto (Java Swing). Cualquier ayuda es muy apreciada.

En este momento, estoy tratando de tener dos campos de texto uno al lado del otro con una etiqueta diferente encima de cada uno que describe lo que hace ese campo de texto. Para lograrlo los he colocado en unGridLayout(2, 2).

Es esta la mejor manera? Es la única forma que conozco de tener una etiqueta directamente sobre otro componente. ¿Hay alguna manera mejor? ¿Qué pasa si hay una sola etiqueta encima de un botón? ¿Es sensato posicionarlo a través de unaGridLayout(2, 1)? Tengo una discapacidad visual, por lo que no creo que posicionar los botones solo por su posición de píxel sea una opción, a menos que haya una forma sencilla de colocar los componentes en un número relativo de píxeles con respecto a otro componente.

Eso me lleva a mi siguiente pregunta. ¿Cuál es la mejor manera de tener la misma interfaz de usuario que la anterior pero con otro componente (botón) centrado debajo de ella? Esencialmente, la interfaz de usuario debe componer dos campos de texto con nombre con un botón de calcular debajo. La forma en que lo hice es colocar los componentes anteriores en un panel, y agregar eso más el botón de calcular a un panel circundante con unaGridLayout(2, 1). El problema es que el botón se vuelve tan grande como el panel de arriba (supongo). ¿Cómo puedo ajustar esto y aún tener el botón perfectamente alineado debajo del panel de etiquetas / campos de texto? De manera similar con las etiquetas sobre las áreas de texto. La etiqueta debe ser pequeña pero tener un espacio más grande para el área de texto debajo.

(campo de texto): una vez más, refiriéndose a la interfaz de usuario anterior, si el usuario escribe muchos caracteres en el primer campo de texto, ¿irán las letras sobre el campo de texto de la derecha? Si es así, ¿cómo puedo prevenir esto?

Si agrego texto a un área de texto y ya está lleno, ¿permitirá automáticamente al usuario desplazarse? Si no, ¿cuál es una forma sencilla de hacer que el área de texto se pueda desplazar?

En este momento no estoy configurando un tamaño del área de texto. ¿Simplemente crece a medida que agrego texto? ¿Tiene un tamaño predeterminado como en número de caracteres?