Moim zdaniem takim kontenerem na przyciski jest właśnie JPanel. A kod który pokazałeś jest inicjowaniem zawartości tego kontenera.
Chyba pytasz o coś takiego, przykład z internetu.
Component[] components = panel.getComponents();
for (int i = 0; i < components.length; i++) {
int currXMax = components[i].getX() + components[i].getWidth();
int currYMax = components[i].getY() + components[i].getHeight();
if (currXMax > maxX) maxX = currXMax;
if (currYMax > maxY) maxY = currYMax;
}
tu więcej przykładów.
Poza tym polecam JavaFX zamiast Swinga.
Przyciski na oknie tworzysz w graficznym edytorze, ustalasz tam ich rozmieszczenie i wygląd. GUI które wyklinasz jest potem zapisywane jako plik .fxml. A w samym kodzie Javy podpinasz tylko to co ma robić przycisk + ewentualne bardziej zaawansowane rzeczy z GUI.
JavaFX daje większe możliwość, zmniejsza ilość kodu i lepiej wygląda od GUI stworzonego w Swinga. A jakbyś chciał poszaleć z wyglądem to możesz to tego dołożyć style CSS.
tu video tutorial JavaFX
Jakbyś miał jakieś problemy jak zacząć z JavaFX to pytaj śmiało.