
Originariamente inviata da
andbin
Scusa ma anche qui ... hai un NPE ... qualcosa è null, ovvio, hai verificato cosa? selectedMenu è l'oggetto preso da getSelectedValue()? Può essere null, lo testi prima?
selectedMenu è l'oggetto preso da getSelectedValue.
il problema sorge quando elimino un menu
codice:
Menu selectedMenu = (Menu)menuList.getSelectedValue();
menuName.setText(selectedMenu.getMenuName());
nella seconda riga...
Il metodo che richiama l'eliminazione del menu è questo:
codice:
private void bDeleteMenuActionPerformed(java.awt.event.ActionEvent evt) {
Menu selectedMenu = (Menu)menuList.getSelectedValue();
selectedMenu.getMenuName();
int index = menuList.getSelectedIndex();
DBConnection.deleteMenu(selectedMenu);
int size = model.getSize();
if (size == 0) { //Non sono rimasti menu nella lista, disabilito Elimina Menu
bDeleteMenu.setEnabled(false);
} else {
if (index == model.getSize()) {
//rimuovo l'elemento nell'ultima posizione
index--;
}
menuList.setSelectedIndex(index);
menuList.ensureIndexIsVisible(index);
}
model.removeElement(selectedMenu);
menuName.setText("");
}
Non riesco a capire...
Il punto è che selectedMenu è evidentemente null a quel punto, ma non dovrebbe esserlo, perché la selezione si è (o dovrebbe essersi) spostata automaticamente sulla successiva/precedente riga disponibile della jlist...