/ / Créer un JPanel de grille 20x20 (JPanels dans chaque case de grille) de manière récursive mais référencer chaque case? - java, balançoire

Créer un JPanel de grille 20x20 (JPanels dans chaque case de grille) de manière récursive mais référencer chaque case? - java, balançoire

La question semble terrible, je m'en excuse.

En bref, je tente de créer un format 20x20."grille" de carrés tous noirs ou blancs, imitant des pixels. Je sais comment créer récursivement la grille car je n’ai donc pas 400 variables (comme pour ajouter 400 JPanels une à une), je ne sais pas comment je pourrai faire référence à une case spécifique plus tard pour changer l’état .

Je pense avoir peut-être un fond blancavec une ligne quadrillée dessus (sur un jPanel). Ensuite, en créant un autre JPanel avec une grille de 20x20 et en utilisant une méthode qui donne une certaine entrée (par exemple 18x9), cela ajouterait un panneau noir à cette grille.

Est-ce que ma pensée est correcte? De toute façon, je vais y aller, mais peut-être que quelques conseils me seraient utiles, car je suis encore nouveau sur Java. Ou y a-t-il une autre approche que je pourrais utiliser à la place? On m'a dit de laisser tomber Swing et de passer à JavaFX (même s'il implémente swing) car il est beaucoup plus polyvalent, mais je ne suis pas prêt à aller aussi loin.

Merci!

MODIFIER: Et je suppose que je devrais mentionner que cela ne "va pas être une sortie" éditable "à proprement parler. Je n’ai donc pas besoin de me soucier de cacher des panneaux plus tard, car je commencerai alors une nouvelle sortie.

Réponses:

0 pour la réponse № 1

"Je ne suis pas sûr de savoir comment je peux faire référence à une boîte spécifique plus tard pour changer l’état de la couleur.

Conservez simplement une référence à tous les composants que vous ajoutez dans la grille à une liste de tableaux.

ayant une méthode qui donne une certaine entrée (par exemple 18x9)

Donc, pour référencer ce composant, vous devez obtenir l'index à utiliser dans ArrayList:

int index = (18 * 9) - 1;
JPanel panel = list.get(index);
panel.setBackground(...);