Ciao a tutti!
Sto preparando un piccolo programma in java con interfaccia grafica che, tra le altre cose, permette di mostrare all'utente una tabella con caselle modificabili...
Siccome i dati della tabella sono presi da una matrice di interi (gestita da una classe di oggetti MyClass creata da me) che va modificata dall'utente, ho deciso di estendere la classe AbstractTableModel così da avere un modello di dati mio da inserire in una JTable:
ho definito i tre metodi astratti,
ho settato isCellEditable(x,y) come true,public int getRowCount(){
return matrix[0].length;
}
public int getColumnCount(){
return matrix.length;
}
public Object getValueAt(int x, int y){
return matrix[y][x];
}
e ho impostato setValueAt in modo che vengano modificati sia MyClass, che la matrice a lei collegata (ho inserito all'inizio i campi private MyClass mc e private int[][] matrix da usare).
Il costruttore MyTableModel(MyClass mc) funziona, visto che quando lancio il programma mi compare effettivamente la tabella con i numeri di mc, ma quando cerco di inserire dei valori da tastiera non me li accetta, quindi credo che il problema sia in come è gestito tableChanged(TableModelEvent).public void setValueAt(int n, int x, int y){
mc.setNumber(n,x,y);
matrix[y][x]=n;
fireTableCellUpdated(x,y);
}
Qualcuno potrebbe darmi qualche dritta? Premetto che ho già guardato le API e i tutorials, ma non mi sono stati di nessun aiuto visto che parlano praticamente solo di DefaultTableModel...

Rispondi quotando