Ho provato a fare come dici tu...ma nella tabella non visualizzo nulla lo stesso...
codice:
ArrayList<DatiRilevati> datiArray = new ArrayList<DatiRilevati>();
DatiRilevatiTableModel drtm= new DatiRilevatiTableModel(datiArray);
public class DatiRilevatiTableModel extends AbstractTableModel {
private ArrayList<DatiRilevati> datiArray; // <---- Il table model ha la collezione
public DatiRilevatiTableModel(ArrayList<DatiRilevati> datiArray) {
this.datiArray=datiArray;
}
public void aggiungiDatiRilevati(DatiRilevati dati) {
datiArray.add(dati);
int row = datiArray.size()-1;
fireTableRowsInserted(row,row);
}
private String colName[] = {"Tempo", "G-value" };
public String getColumnName(int col) {
return colName[col];
}
public int getRowCount() {
return datiArray.size();
}
public int getColumnCount() {
return 2;
}
public Object getValueAt(int row, int col) {
DatiRilevati data = datiArray.get(datiArray.size() - row - 1);
return (col == 0) ? data.tempo :
data.gvalue ;
}
public boolean isCellEditable(int row, int col) {
return false;
}
public Class getColumnClass(int c) {
return (c == 0) ? Long.class : Double.class;
}
}
private class DatiRilevati {
public long tempo;
public double gvalue;
public DatiRilevati(long tempo, double gvalue) {
this.tempo = tempo;
this.gvalue = gvalue;
}
}
qui c'è la parte di codice relativa a recordButtonActionPerformed
codice:
int i=0;
int j= graphView.getSampleTime();
int k=graphView.getIndexMax();
System.out.println(j);
System.out.println(k);
while(i<k){
DatiRilevati dr= new DatiRilevati(graphView.getTime(i),graphView.getGvalue(i));
datiArray.add(dr);
drtm.aggiungiDatiRilevati(dr);
i=i+j;
}
readyRecord = false;
recordButton.setEnabled(false);