ciao a tutti
ho una tabella con 2 colonne con dei dati inseriti tramite DB ed un'altra colonna con tutti i campi vuoti, in cui bisogna inserire dei numeri per poi moltiplicarli con uno dei 2 campi presi dal Database.
Ecco il codice dell'actionperformed del pulsante che fa fare il calcolo:
codice:public void actionPerformed(ActionEvent e) { double temp; Vector resa = new Vector(); Vector prezzi = new Vector(); for(int i=0;i<4;i++) { prezzi.addElement(tabella.getModel().getValueAt(i,1).toString()); String controlloResa = tabella.getModel().getValueAt(i,2).toString(); if(controlloResa.length()!=0) resa.addElement(tabella.getModel().getValueAt(i,2).toString()); else { String zero = new String("0"); resa.addElement(zero); } temp = Double.parseDouble(prezzi.get(i).toString()) * Double.parseDouble(resa.get(i).toString()); risultato += temp; } risultatoCalcolo.setText("Il Risultato dello Sviluppo è: \n "+ risultato); }
il problema è questo:
quando apro la tabella se non inserisco nessun valore e premo il pulsante si genera un NullPointerException.
Ho fatto varie prove commentando le ultime righe ed ho scoperto che sorge qui:
<<resa.addElement(tabella.getModel().getValueAt(i, 2).toString());>>
se al posto di (i,2) metto (i,1) non ci sono problemi in quanto prende la colonna del DB, ma quando metto 2 (la colonna con le celle vuote) spunta l'errore!
Mentre se inserisco in tutte le celle un valore, il risultato è esatto e non ottengo eccezioni.
Inoltre ho notato una cosa strana:
Se inserisco tutti i dati, premo il pulsante, poi cancello uno dei dati e ripremo il tasto, il risultato viene generato senza errori.
Se, invece, inserisco i dati omettendone uno (o più di uno) e premo il pulsante, viene generato l'errore.
Qualcuno ha qualche idea a riguardo?
Scusate per l'eccessiva lunghezza!
![]()

Rispondi quotando