Ciao, non riesco a sistemare questi due metodi:
In pratica se elimino un articolo ottengo un errore di nullpointer exception. Effettivamente se dopo aver eliminato un articolo schiaccio di nuovo il pulsante Elimina mi dice che non ho selezionato nessun menu, quindi praticamente dopo aver eliminato il menu è come se perdo 'la selezione' dell'oggetto.codice://Gestisco le selezioni sulla lista dei menu private void menuListValueChanged(javax.swing.event.ListSelectionEvent evt) { String field = (String)menuList.getSelectedValue(); menuName.setText(field); if (field.isEmpty()==false) { bDeleteMenu.setEnabled(true); } } //Gestisco le azioni del pulsante 'Elimina menu' private void bDeleteMenuActionPerformed(java.awt.event.ActionEvent evt) { String field = menuName.getText(); DBConnection.deleteMenu(field); model.removeElement(field); menuName.setText(""); }
Se tolgo questa riga:
model.removeElement(field);
non ho più l'errore ma ovviamente perdo l'aggiornamento della jlist e mi fa vedere il record eliminato finché non ricarico la finestra.
La 'catena' di errori parte dalla riga: if (field.isEmpty()==false).
Come posso ovviare?
Grazie.
Si potrebbe dire che ho risolto, anche se non mi convince molto:
Che ne pensate?codice://Gestisco le selezioni sulla lista dei menu private void menuListValueChanged(javax.swing.event.ListSelectionEvent evt) { int index = menuList.getSelectedIndex(); int size = model.getSize(); if (index >= 0) { bDeleteMenu.setEnabled(true); } else { bDeleteMenu.setEnabled(false); } String field = (String) menuList.getSelectedValue(); menuName.setText(field); } //Gestisco le azioni del pulsante 'Elimina menu' private void bDeleteMenuActionPerformed(java.awt.event.ActionEvent evt) { String field = menuName.getText(); int index = menuList.getSelectedIndex(); DBConnection.deleteMenu(field); int size = model.getSize(); if (size == 0) { bDeleteMenu.setEnabled(false); } else { //Select an index. if (index == model.getSize()) { index--; } menuList.setSelectedIndex(index); menuList.ensureIndexIsVisible(index); } model.removeElement(field); menuName.setText(""); }