
Originariamente inviata da
andbin
Ok, ho visto la griglia, mi è chiaro il risultato aspettato. Tecnicamente parlando, ci sono almeno 3 soluzioni in Swing:
a) Disporre le 45x45 celle usando un layout manager, GridLayout è il candidato ideale. Ogni cella chiaramente dovrà contenere un componente, potrebbe essere un JLabel o un JPanel, cambia poco, l'importante che è sia "opaco" e si possa settarne quindi il background. O addirittura si potrebbe definire un componente custom. Quale componente usare comunque è meno importante del resto.
Bisogna anche considerare le dimensioni: GridLayout suddivide l'intero contenitore (il componente che ha il GridLayout) in NxM celle, quindi se fissi la dimensione del contenitore (es. perché dipende direttamente dalla dimensione del frame), sono le celle ad adattarsi, non il contrario. Altrimenti puoi fare in modo che sia il contenitore ad adattarsi ai componenti nelle celle, che devono avere un "preferred size".
b) Disporre le 45x45 celle
senza un layout manager. Usi la tecnica del posizionamento "assoluto", ogni componente lo disponi dove vuoi e con la dimensione che vuoi (setLocation+setSize oppure setBounds). La scelta del componente da usare per le celle è uguale/similare a quanto detto in a).
c) Usi il custom painting, ovvero definisci un componente custom (estendendo JPanel o al limite JComponent) in cui disegni tutta la griglia tramite la API di Java 2D. Chiaramente va tutto gestito, painting corretto, metodi per settare lo stato delle celle, ecc..
Visto che è un griglia molto regolare e semplice, non è troppo difficile (ma richiede comunque buone conoscenze sul painting, Java 2D, ecc...)
A te la scelta.
