Pessoal, estou fazendo uma aplicação simples, para carregar um ComboBox, apartir de dados do Banco de dados. O Método:
public void carregaCombo() {
DaoUsuario d = new DaoUsuario();
ArrayList usuarios = new ArrayList(d.getUsers());
JCBusuarios.removeAllItems();
for (int i = 0;i<usuarios.size();i++) {
Usuario user = (Usuario) usuarios.get(i);
JCBusuarios.addItem(user.getUsuario());
}
}
Faz todo procedimento corretamente,
porém quando vou adicionar:
try {
d.Insert(user);
carregaCombo();
} catch (Exception e) {
String err = "Erro ao inserir:\n"+e;
JOptionPane.showMessageDialog(null,err);
e.printStackTrace();
}
Lança: NullPointerException, E fui verificar o PQ disso, e percebi, que dá null, pois na rotina do evento ACTIONPERFOMED ele faz:
Usuario user = d.getUserByUser(JCBusuarios.getSelectedItem().toString());
if (user.getUsuario() != null) {
JTid.setText(String.valueOf(user.getId()));
JTusuario.setText(user.getUsuario());
JPsenha.setText(user.getSenha());
JCadm.setSelected(user.isAdmin());
}
Envia para rotina “getUserByUser” um null, pois ele faz o : removeAll() antes.
ok, isso pouco interessa, o que eu não consigo entender, é PQ os métodos - removeAllItems e AddItem, quando executados, CHAMAM o ActionPerformed ? ActionPerformed, não deveria ser invocado somente em um evento do usuário ? Há alguma forma de resolver este problema?
Abração,