Visualizzazione dei risultati da 1 a 2 su 2

Discussione: problema addrow JTable

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140

    problema addrow JTable

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

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Nel setValueAt() devi anche settare ciò che viene passato.
    Dai un occhio a questo articolo: http://solopc.forumcommunity.net/?t=52494860

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.