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!