Un layout manager de type GridLayout permet de placer les composants dans une grille, ce qui convient parfaitement pour placer les boutons.
Sauvegarder Base.java sous le nom Grille.java et faire les changement de noms nécessaires.
On va ajouter dans la fenêtre un JPanel (appelé bas), lui donner un layout manager de type GridLayout à trois colonnes et y placer les boutons.
JPanel bas=new JPanel(); bas.setLayout(new GridLayout(4,3,2,2)); getContentPane().add(bas);
La seconde ligne créé le GridLayout avec 4 rangées, 3 colonnes et 2 pixels d'espacement horizontalement et verticalement entre les éléments (on aurait pu écrire aussi bas.setLayout(new GridLayout(0,3,2,2)); ce qui signifie 3 colonnes et autant de rangées que nécessaire, ou bas.setLayout(new GridLayout(4,0,2,2)); c'est à dire 4 rangées et autant de colonnes que nécessaire). Le layout sitôt créé est affecté au JPanel bas par l'instruction setLayout
Dans la suite du programme, dans la boucle qui place les boutons, on remplace la ligne getContentPane().add(clavier[i]); par bas.add(clavier[i]);Si on exécute ce programme, on obtient les boutons rangés dans une grille sur 3 colonnes, dans l'ordre où ils ont été ajoutés.
Il manque quelque chose dans l'interface : le JTextField ecran n'est pas visible, car pour le moment il est caché sous le JPanel. Dans la suite on va utiliser un Layout Manager pour la JFrame afin de positionner le JTextField ecran par-rapport au Jpanel contenant le clavier.