PDA

View Full Version : [JAVA] problema con JTable


rab
11-06-2011, 12:59
Salve a tutti

devo rendere non modificabili le celle di una JTable, leggendo in internet il metodo consigliato è quello di estendere la classe DefaultTableModel, che definisce il modo con cui vengono presentati e modificati i dati, e fare l'overriding del metodo isCellEditable() in modo da restituire false quando non si vuole che le celle vengano modificate.
ciò che ho fatto io è questo:

public class JTableModel extends DefaultTableModel {

boolean b;

@Override
public boolean isCellEditable(int i, int i1) {

if(b){
return false;
}

return true;

}

void nonModificabile() {

b = true;

}

}

purtroppo quando assegno questo modello alla jtable tramite il suo metodo setModel() non viene più visualizzata la tabella, come faccio?

PGI-Bis
12-06-2011, 16:16
Cosa intendi per "non viene più visualizzata la tabella"?

Lo chiedo perché la tua sottoclasse non dovrebbe darti quel genere di magagna.

Nota che se rimpiazzi il modello di una tabella esistente, perdi i dati che erano nella tabella prima del set model. In altre parole, dovresti usare la tua sottoclasse così (per essere sicuri):

JTable laMiaTabella = new JTable(new JTableModel());

Dopo puoi dire quante righe/colonne vuoi usando i metodi di DefaultTableModel.

rab
13-06-2011, 10:27
era proprio come dicevi tu, con setModel() si perdono tutti i dati, ho risolto usando il costruttore da te indicato, grazie! :cincin: