Utilizzando come modello della tabella JTable la Classe "DafaultTableModel" come posso (se si può) fare in modo che le celle non si possano editare???
Grazie
Utilizzando come modello della tabella JTable la Classe "DafaultTableModel" come posso (se si può) fare in modo che le celle non si possano editare???
Grazie
Estendi DafaultTableModel e fai l'override di isCellEditable().Originariamente inviato da anatroccolo
Utilizzando come modello della tabella JTable la Classe "DafaultTableModel" come posso (se si può) fare in modo che le celle non si possano editare???
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ho creato il metodo ma quando modifico il valore, quello che cambio non viene memorizzato e ritorna il valore precedente. Ho letto che bisogna creare nel modelTable il metodo setValueAt, io l'ho creato ma non mi memorizza niente. Vi posto il codice di tale metodo!!
Utilizzo in ogni caso come matrice per memorizzare i valori una lista di liste perche' ho necessita' di un inserimento dinamico dei dati
Il metodo e' sbagliato oppure c'e' qualcos'altro da fare?????codice:public void setValueAt(String value, int row, int col) { int countRiga = 0; for (ArrayList<String> riga : parameterRow) { if (row == countRiga) riga.set(col,value); parameterRow.set(row,riga); countRiga++; } fireTableCellUpdated(row, col); }
Il metodo indubbiamente non è il massimo ...... quel for non serve!!Originariamente inviato da rocklife
Il metodo e' sbagliato oppure c'e' qualcos'altro da fare?????
La tua struttura dati è un ArrayList di ArrayList di oggetti String, giusto? Fai un get() usando 'row' per prendere la riga e su questo ArrayList della riga fai un set() usando 'col' per impostare il valore della colonna.
Quel parameterRow.set(...) non ne vedo il senso e l'utilità ....
Ma quello che è più sbagliato (ed è per questo che non ti funziona) è la signature del metodo!!!!!!!!
Devi (e ripeto devi) usare la signature indicata dalla interfaccia TableModel:
void setValueAt(Object aValue, int rowIndex, int columnIndex)
Se tu sai che sono stringhe, allora nel metodo fai un cast a String.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Grazie mille!!adesso funziona!! l'errore era quella ma anche un altro, perche' quando utilizzavo quello che mi hai consigliato avevo un errore dei metodi get e set perche' lavoravano su indici non esistenti! ho modificato il codice in una sezione e adesso va! grazie ancora!