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);

Rispondi quotando