Ciao ragazzi,
seguendo alcune guide ho cercato di creare una tabella e model personalizzati.
Non funziona l'aggiunta di una riga.
Qualcuno può dirmi cosa sbaglio?
Grazie
codice:
public class MyTable extends JTable{
private MyTableModel modelloTable;
public MyTable(){
super();
modelloTable = new MyTableModel(new ArrayList<AcquisitionSingle>());
setModel(modelloTable);
}
public MyTableModel getModel(){
return modelloTable;
}
}
codice:
public class MyTableModel extends AbstractTableModel {
//intestazioni delle colonne
String nomeColonne[]={"Acquisition Mode","Exposure","Pixel Type","Binning X","Binning Y"};
ArrayList<AcquisitionSingle> arrayAcq;
public MyTableModel(ArrayList<AcquisitionSingle> a){
this.arrayAcq=a;
}
public ArrayList getArray(){
return arrayAcq;
}
//torna numero colonne
@Override
public int getColumnCount(){
return nomeColonne.length;
}
@Override
public String getColumnName(int col){
return nomeColonne[col];
}
//torna numero righe
@Override
public int getRowCount(){
return arrayAcq.size();
}
public void setValueAt(Object val, int row, int col){
fireTableDataChanged();
}
@Override
public Object getValueAt(int row,int col){
//seleziono acq
AcquisitionSingle acq=(AcquisitionSingle)arrayAcq.get(row);
if(col==0){
return acq.getAcquisitionMode();
}
else if(col==1){
return String.valueOf(acq.getExposure());
}
else if(col==2){
return acq.getPixelType();
}
else if(col==3){
return String.valueOf(acq.getBinningX());
}
else if(col==4){
return String.valueOf(acq.getBinningY());
}
else{
return "...";
}
}
public void addElement(AcquisitionSingle acq){
arrayAcq.add(acq);
int row=arrayAcq.size()-1;
fireTableRowsInserted(row,row);
}
codice:
AcquisitionSingle acqS=new AcquisitionSingle(acquisitionMode, exposure, pixelType, binning, binningX, binningY);
multipleAcqTable.getModel().addElement(acqS);