Avrò ritornato Qualche String null.
Controllo e vi faccia sapere
[EDIT]
Ho controllato, effettivamente c'era qualche String null.
Infatti Anche con ll'ascoltatore del clic del mouse, se la lista era vuota ritornava errore. Ho corretto ed ora quest'ultimo funziona anche con liste vuote però l'ascoltatore del cambio continua a restituire questo errore…
codice:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at tornei.GUI.refreshTable(GUI.java:554)
at tornei.GUI.tabMainStateChanged(GUI.java:541)
at tornei.GUI.access$100(GUI.java:19)
at tornei.GUI$2.stateChanged(GUI.java:257)
at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:416)
at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:270)
at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132)
at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67)
at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616)
at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591)
at javax.swing.JTabbedPane.insertTab(JTabbedPane.java:731)
at javax.swing.JTabbedPane.addTab(JTabbedPane.java:798)
at tornei.GUI.initComponents(GUI.java:310)
at tornei.GUI.<init>(GUI.java:26)
at tornei.GUI$7.run(GUI.java:620)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
BUILD SUCCESSFUL (total time: 1 second)
In particolare la riga 554 è questa:
codice:
private void refreshTable() {
String elenco = "";
javax.swing.JTable table = null;
String s=Integer.toString(tabMain.getTabCount());
jLabel3.setText(s);
switch (tabMain.getSelectedIndex()) {
case 0:
// Aggiorno elenco Giocatori
elenco = database.get_elenco_giocatori();
table = jTableGio;
//btnCancellaAutore.setVisible(nAutori > 0);
break;
case 1:
// Aggiorno elenco artisti
elenco = database.get_elenco_squadre();
table = jTableSqu;
//btnCancellaArtista.setVisible(nArtisti > 0);
break;
case 2:
// Aggiorno elenco libri
elenco = database.get_elenco_partite();
table = jTablePar;
//btnCancellaLibro.setVisible(nLibri > 0);
break;
}
DefaultTableModel model = new DefaultTableModel();
if (table != null) {
table.setModel(model);
String[] rows = elenco.split(System.getProperty("line.separator"));
String[] intestaz = rows[0].split("\t");
for (int x = 0; x < intestaz.length; x++) {
model.addColumn(intestaz[x]);
}
for (int x = 1; x < rows.length; x++) {
String[] row = rows[x].split("\t");
model.addRow(row);
}
}
}
Che chiama questo metodo nella classe Database:
codice:
public String get_elenco_giocatori(){ return ag.stampa_elenco_giocatori();
}
Che infine chiama:
codice:
public String stampa_elenco_giocatori(){ String S = "";
S+=Giocatore.GetIntestazione()+ System.getProperty("line.separator");
for(int i = 1; i < giocatori.size(); i++) {
S+=giocatori.get(i-1).get_all()+ System.getProperty("line.separator");
}
return S;
}
Non mi sembra ci sia qualcosa che non vada.
(Se siamo OT chiedo venia)