PDA

View Full Version : [Java] Griglie di testo


pupetta84
23-03-2010, 10:42
Abbiamo già guardato le api...non ci riusciamo.vorremmo creare una matrice di JTextField, abbiamo provato con il GridBagLayout ma non ne veniamo fuori.L'obiettivo è quello di creare una sorta di cruciverba.
questo è dove siamo arrivati.grazie!!!


___________________________________

import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;



public class CrucimattoGrafico extends JPanel{
private GridBagLayout gbl;
private JPanel generale;
private int dim;
private int colonne, righe;
private Schema schema;
private KeyListener key;
private Casella [][]casella;

public CrucimattoGrafico(int dim){
this.dim=dim;
if(dim==1){
colonne=10;
righe=10;
setSize(400,400);
}//if
if(dim==2){
colonne=15;
righe=12;
setSize(500,400);
}//if
if(dim==3){
colonne=23;
righe=12;
setSize(700,400);
}//if
schema=new Schema(righe,colonne);
gbl=new GridBagLayout();
generale=new JPanel(gbl);
for(int r=0;r<righe;r++){
for(int c=0;c<colonne;c++){
if(r!=0&&c!=0) casella[r][c]=new Casella();
else if (r==0) casella[r][c]=new Casella(c+1);
else if (c==0) casella[r][c]=new Casella(r+1);

GridBagConstraints lim=new GridBagConstraints();
lim.gridx=r;
lim.gridy=c;
lim.gridwidth=10;
lim.gridheight=10;
gbl.setConstraints(casella[r][c], lim);
generale.add(casella[r][c]);

}//for
}//for

}//CrucimattoGrafico costruttore
public void copiaChar(int r, int c){
schema.setCarattere(r, c, casella[r][c].getToolTipText());
}//copiaChar
}//CrucimattoGrafico

braian
23-03-2010, 10:47
Un'idea potrebbe essere quella di utilizzare una jtable con celle editabili e alcune no (Quelle di solito nere nei cruciverba.) Guardate le api della jtable (MVC)
Ciao

pupetta84
23-03-2010, 10:56
mi sono spiegato male...le caselle nere le deve inserire l'utente... non posso sapere a priori dove andrà la casella nera.

pupetta84
23-03-2010, 12:18
ho provato a farlo girare ma da errore qua:
____________________________________________________________
for(int r=0;r<righe;r++){
for(int c=0;c<colonne;c++){
if(r!=0&&c!=0) casella[r][c]=new Casella();
else if (r==0) casella[r][c]=new Casella();
else if (c==0) casella[r][c]=new Casella();
_____________________________________________________________

non so come inserire tante caselle quante siano utili

PGI-Bis
23-03-2010, 13:56
Usa GridLayout