Le plus simple est de confier le placement "fin" de tes éléments à un LayoutManager (Cherches l'interface LayoutManager dans la Javadoc pour voir toutes les classes qui l'implémentent)
Il y en a de différentes sortes, qui permettent en fait zde situer les éléments le uns par rapport aux autres dans la fenêtre. Ensuite, la finition est faite automatiquement..
Pour info, ceux que j'utilise le plus :
FlowLayout (met les éléments côte à côte, de gauche à droite),
BoxLayout (en Swing), met les éléménts soit côte à côte, soit les uns au desus des autres),
BorderLayout (Séparé en 5 zones, center,NORTH,SOUTH,WEST et EAST),
GridLayout (tu l'instancie avec un nombre de colonnes et un nombre de lignes)
etc, etc...
L'idée générale étant d'utiliser ces LayoutManagers dans des panels, eux mêmes agencés par des layouts managers à l'intérieur d'autres panels ou de ta fenêtre;
il en existe bien spur plein d'autres, mais je te cite quand même le GridBagLayout, bien plus complexe à utiliser au début, mais beaucoup plus puissant.
Le mieux pour continuer étant bien sûr de lire les Javadoc de ces classes!
Bon courage.
Sinon, tu as aussi des beaucoup plus complexes