Plusieurs choses:
1 - Il ne faut pas mixer AWT et SWING donc un Panel ne doit pas être utilisé en Swing mais plus un JPanel.
2 - Évite les setLayout(null), c'est source de prioblèmes.
3 - Si tu en arrives à faire des positions moins/plus indice c'est que tu n'utilises pas le bon layout.
4 - Le JavaFX tend à être un remplaçant viable à Swing (ICI), tu devrais peut-être te pencher sur le sujet.