Newsgroup: it.comp.java
Titolo: del ed errore

Dopo la cancellazione di una riga di dati, mi compare:
 
java.lang.ArrayIndexOutOfBoundsException: -1
 
Indica che ho problemi col puntatore?
 
-- 
Gulp®
(forse mi sono perso qualcosa :))

 Indica che ho problemi col puntatore?
 
Leggere la documentazione, no? 
http://docs.oracle.com/javase/7/docs/api/java/lang/ArrayIndexOutOfBoundsException.html
 
 


Definisci 'riga di dati'.
se 'riga di dati' e' un byte[], l'errore indica che hai usato un indice 
fuori dal range 0-(array.lenght-1), ovvero:
for(int index = 0; index <= array.lenght; index++)
e' sbagliato, la versione corretta e':
for(int index = 0; index < array.lenght; index++)
Ti segnalo i molti metodi statici della classe Arrays, ad esempio:
Arrays.fill(array, (byte)' ');
che fa la stessa cosa del for di cui sopra. Guardati il javaDoc.

Il 25/09/15 14:39, 4ndre4 ha scritto:

Fare a meno rispondere no?


 Guardati il javaDoc.
 
Record visualizzato in una javatab.
Ogni tanto do anche un'occhiata al javaDoc, ma l'inglese non è mio 
amico... :) e faccio un po' fatica.
 
Grazie comunque sempre per la tua disponibilità. Se continuo in questo 
sforzo con Java è anche grazie a te.
 
private void EliminaVoce() {
int selectedRow = GridListino.getSelectedRow();
sigla=GridListino.getModel().getValueAt(selectedRow,0).toString();
desc=GridListino.getModel().getValueAt(selectedRow,1).toString(); 
 
conn = DriverManager.getConnection("jdbc:hsqldb:file:" + Path + 
"/dbase/opto","sa","");
conn.setReadOnly(false);
st = conn.createStatement();
st.execute("Delete from \"listino\" Where SIGLA ='" + sigla + "' And 
DEFINIZION='" + desc + "'");
st.close();
conn.close();
 
MostraListino("SELECT SIGLA,DEFINIZION,PREZZO,ID FROM \"listino\" ORDER 
BY SIGLA,DEFINIZION");
 
Ma l'errore me lo dà MostraListino e non capisco perchè, dal momento che 
la stessa void all'apertura del window funziona regolarmente.


 Fare a meno rispondere no?
 
evitare di fare domande a cui nessuno può rispondere no?
 
codesto errore sta a significare che stai cercando di accedere all'elemento
-1 di un array. che cazzo ne sappiamo noi cosa stai impiastricciando? hai
lo stacktrace, guarda. altrimenti mettiti ad usare programmi fatti da altri
e a quel punto fai domande da utonto.
 

 
 
<<"Gulp®"  ha scritto nel messaggio news:mu5iq6$fpl$1...@speranza.aioe.org...
<<<int selectedRow = GridListino.getSelectedRow();
 
prima di questa riga metterei un test per controllare , così:
 
if(gridlistino.getSelectedRow()!=-1)
{
    int selectedrow=gridlistino.getSelectedRow();
 
etc..........
} 
 

Il 26/09/15 09:56, rootkit ha scritto:

Se ti sto sulle balle fai finta che non esista. Ce la fai?


 Se ti sto sulle balle fai finta che non esista. Ce la fai?
 
se ti danno fastidio queste risposte fai finta che non esistano. ce la fai?
 


 
Si si può anche sopportare l'arroganza e la maleducazione, ci posso provare.


Il 26/09/15 11:33, Nando ha scritto:

Siiii era quello !!!
Grazie Nando!!


 (forse mi sono perso qualcosa :))
 
Ti sei perso molto di piu` che qualcosa.
 

 for(int index = 0; index < array.lenght; index++)
 
Magari "length" :)

 amico... :) 
 
La vedo molto dura per te.

 int selectedRow = GridListino.getSelectedRow();
Supponendo che GridListino sia un oggetto governato da un model, ad 
exempio una JTable, dovresti verificare nella documentazione cosa puo' 
ritornare getSelectedRow():
http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#getSelectedRow%28%29
 
che dice:
Returns the index of the first selected row, -1 if no row is selected.
(che anche se non sai l'inglese, il siglificato dovrebbe essere 
abbastanza chiaro)
per cui dovresti verificare che il valore ritornato sia non negativo 
prima di utilizzarlo, con un semplice if:
if (selectedRow >= 0) {



 
infatti lo è. :)
Sapessi quanto invidio le mie due figlie che l'inglese lo conoscono!
