di focaska » 03/07/05 14:20
In effetti si, il campo del database numero del volo è un intero...ed io gli passavo una stringa, ho fatto il casting da stringa a intero...così non dovrebbe dare problemi, dico bene?
Ho inserivo anche il metodo dello stack...
Dopo la modifica del codice...
public void VisualizzaVolo() {
String NumeroVoloo = NumVoloVT.getText();
if (NumeroVoloo.equals("")) new errCampiVuoti(this,false).show();
int NumeroVolo = Integer.parseInt(NumeroVoloo);
int riga = 0;
String[] nomiColonne = {"Numero Volo", "Arrivo", "Ora Partenza", "Giorno", "Mese"};
Object[][] dati;
String url = "jdbc:mysql://localhost/Aereoporto?user=root";
String query2 = "SELECT * FROM Volo WHERE NumVolo=" + NumeroVolo ;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch(Exception e){System.out.println("Errore Driver");}
try {
Connection con = DriverManager.getConnection(url,"root","");
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(query2);
ResultSetMetaData rsmd = rs.getMetaData();
int numColonne = rsmd.getColumnCount();
rs.last();
int numRighe = rs.getRow();
rs.first();
Risul1 = new String[numRighe];
boolean prossimo = rs.first();
while(prossimo) {
Risul1[riga] = new String(rs.getString(1) + " - " + rs.getString(2) + " " + rs.getString(3) + " - " + rs.getString(4)+ " - " + rs.getString(5));
riga++;
prossimo = rs.next();
}
rs.close();
stm.close();
con.close();
} catch(SQLException e) {System.out.println("Errore Database ");e.printStackTrace();}
String[] datiTemp = Risul1;
int numColonne1 = nomiColonne.length;
int numRighe1 = datiTemp.length / numColonne1; //729 vecchio errore
int i;
dati = new Object[numRighe1][numColonne1];
for (i=0; i<datiTemp.length; i++) {
dati[i/numColonne1][i%numColonne1] = datiTemp[i]; //733 nuovo errore
}
TabVis = new javax.swing.JTable(dati, nomiColonne);
for (int z=0;z<nomiColonne.length;z++) {
javax.swing.table.TableColumn Colonna = null;
Colonna = TabVis.getColumnModel().getColumn(z);
if (z==0) Colonna.setPreferredWidth(50);
else if (z==3) Colonna.setPreferredWidth(100);
else if (z==4) Colonna.setPreferredWidth(150);
else if (z==6) Colonna.setPreferredWidth(30);
else if (z==7) Colonna.setPreferredWidth(80);
else if (z==8) Colonna.setPreferredWidth(130);
}
TabVis.setDragEnabled(false);
ScrollVis = new javax.swing.JScrollPane(TabVis);
getContentPane().add(ScrollVis, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 30, 900, 250));
pack();
}
In compilazione tutto ok, in esecuzione cambio dell'errore...
java.lang.ArrayIndexOutOfBoundsException: 0
at aeroporto.Aeroportoserver.VisualizzaVolo(Aeroportoserver.java:733)
at aeroporto.Aeroportoserver.visual(Aeroportoserver.java:354)
at aeroporto.Aeroportoserver.access$300(Aeroportoserver.java:20)
at aeroporto.Aeroportoserver$4.actionPerformed(Aeroportoserver.java:250)
at java.awt.Button.processActionEvent(Button.java:382)
at java.awt.Button.processEvent(Button.java:350)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)