En fait, je ne pense pas que vous avez besoin textfields sur les places de la grille, mais juste d'écrire chaque lettre unique pour chaque cellule de la grille ..
Pour vous éditer permettent attrapez juste des coups de clavier sur le composant que vous utilisez et ensemble des mots croisés en fonction de ce que l'utilisateur écrit. Faire cela de cette façon serait assez simple car vous pouvez utiliser un tableau bidimensionnel arrière qui stocke toute la grille, puis lorsque l'utilisateur sélectionne une définition, vous commencez simplement à remplir des lettres simples chaque fois que les touches sont tapées à partir de la première cellule de la définition .. votre routine de dessin devra juste être capable de dessiner la grille et les lettres du centre à l'intérieur des cellules, rien de plus ..
Un JTable
pourrait fonctionner mais il pense que c'est surdimensionné pour votre problème, parce que vous allez finir interface avec beaucoup de choses dont vous n'avez pas besoin du tout ..
EDITER (pour commentaire):
Je l'ai fait quelque chose de semblable façon suivante: vous pouvez avoir une classe de cellules
class Cell
{
boolean isBlank;
char value;
}
avec un réseau de cellules que vous obtenez votre grille:
Cell[][] gamefield = new Cell[15][15];
puis à l'intérieur paint()
vous pouvez facilement itérer :
for (int i = 0; i < Scheme.rows; ++i)
{
for (int j = 0; j < Scheme.cols; ++j)
{
g2.drawRect(i*32, j*32, 32, 32);
if (Scheme.scheme[i][j].isBlank)
g2.fillRect(i*32 + 3, j*32 + 3, 32 - 5, 32 - 5);
}
}
Tout simplement parce que j'ai encore un résultat de capture d'écran était quelque chose comme alt text http://img3.imageshack.us/img3/7374/68514939.png
@Jack Merci beaucoup pour votre réponse. Que utiliseriez-vous pour dessiner la grille alors? Une collection de carrés de Graphics2D? – Alex
Je pensais que je pourrais juste utiliser un logiciel de retouche d'image pour créer tout le type possible de carrés de grille et charger le dans une grille. – Alex
vous voulez dire toutes les lettres? Vous pouvez utiliser __graphics.drawString() __ .. vous pouvez aussi facilement le positionner en obtenant la largeur du caractère (donc vous pouvez le centrer) avec __graphics.getFontMetrics(). StringWidth ('A') __ – Jack