ho bisogno di un aiutino per una desktop application in java con netbeans. vorrei una Jtable dinamica. si può fare? come si fa? sopratutto ho una jTable che ha dimmesioni 6 righe e 2 colonne. mediante una matrice di Object statica come posso trasformarla in modo che sia dinamica magari che posso aggiungere righe. quante ne voglio. più che altro che se voglio che si espande ad una matrice 7x2 mi esce fuori l'eccezzione che sono andato oltre alle dimensioni prefedinite dell'array. esiste una classe come arrayList per fare questo perchè so che tipo ArrayList è una struttura dinamica tipo un Array ma dinamico. pero so usarla per una dimensione ma essendo una Jtable bidimensionale esce fuori questo problema. come risolvo? la matrice di Object che ho appunto contiene elementi dervati da due ArrayList. solo che posso aggiungere righe fino al numero di righe predefinite(6 come nel mio esempio).
nel dettaglio il problema è nel seguente codice.
classe calcoli:
view:codice:// dichiaro variabili ovvero le proprieta della classe calcoli /*vedere che ci sono nrighe e righe righe e colonne sono le dimmensioni della mia matrice*/ int colonne, nMovimenti, righe, nrighe; // la mia matrice di object dichiarazione Object o[][]; // costruttore vuoto della classe e inizializzazione di tutte le variabili della classe public calcoli() { // inizializzo le dimmesioni della matrice this.colonne = 6; this.nMovimenti = 0; this.righe = 10; // inizializzo una delle due arrayList this.movimenti = new ArrayList<movimento>(); this.nrighe = 0; this.df = new DecimalFormat("#,##0.00"); // inizializzo l'atra this.calcolo = new ArrayList<calcoli>(); // inizializzo la matrice di object this.o = new Object[righe][colonne]; } // infine il medoto aggiungiMovimento public void aggiungiMovimento(movimento m) { if (nrighe < righe) { movimenti.add(m); this.Aggiorna(); nrighe++; }else{ System.err.println("rag max righe"); } }
come vedete ho righe = 6codice:// dichiaro il mio modello astratto di tabella AbstractTableModel atm; // inizializzo atm con tutti i metodi astratti atm = new AbstractTableModel() { public int getRowCount() { return c.getRighe(); } public int getColumnCount() { return c.getColonne(); } public Object getValueAt(int rowIndex, int columnIndex) { return c.getValore(rowIndex, columnIndex); } @Override public String getColumnName(int column) { return c.getnomiColonne(column); } };
nrighe =0 e poi nell'aggiungi movimento c'è l'istruzione nrighe++;
fino a qui tutto bene posso implementare movimenti pero fino al numero di righe cioè 6 come faccio che nella Jtable della view gestita da atm (abstract table model) posso iniziare con 0 righe e finire solo quando ho inserito l'ultimo movimento.

Rispondi quotando