Eu denovo galera! hehehe
O negócio é o seguinte… Eu tenho um método que passa os dados dos clientes contidos em um banco de dados da seguinte forma:
encapsulo em objetos da classe Usuario e adiciono em um ArrayList que será retornado:
public ArrayList retornaDados(String tabela) {
conectaBanco();
try {
ArrayList dados = new ArrayList();
String sql = "SELECT * FROM " + tabela;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int cid = rs.getInt("id");
String cnome = rs.getString("nome");
String cmat = rs.getString("matricula");
String ctel = rs.getString("telefone");
String ccel = rs.getString("celular");
String cemail = rs.getString("email");
Usuario usertemp = new Usuario(tabela, cid, cnome, cmat, ctel, ccel, cemail);
dados.add(usertemp);
}
rs.close();
stmt.close();
desconectaBanco();
return dados;
} catch (SQLException e) {
System.out.println("Ocorreu uma SQLException no método retornaDados() da classe Usuario.");
e.printStackTrace();
return null;
}
}
Mas como na JTable não aceita ArrayList (pelomenos creio que não) eu transformo esse ArrayList em um Object[][] com o seguinte método da classe Utilitarios:
public static Object[][] transformaArray(ArrayList lista) {
Object[][] dados = null;
int linhas = lista.size();
try {
for (int i = 0; i < linhas; i++) {
Usuario usertemp = (Usuario)lista.get(i);
dados[i][0] = (String)Integer.toString(usertemp.getId());
System.out.println("ID: " + Integer.toString(usertemp.getId()));
dados[i][1] = usertemp.getNome();
System.out.println((String)dados[i][1]);
if (usertemp.getMat() != null) {
dados[i][2] = usertemp.getMat();
}
if (usertemp.getTel() != null) {
dados[i][3] = usertemp.getTel();
}
if (usertemp.getCel() != null) {
dados[i][4] = usertemp.getCel();
}
if (usertemp.getEmail() != null) {
dados[i][5] = usertemp.getEmail();
}
}
} catch (NullPointerException e) {
System.out.println("Ocorreu um erro NullPointerException no método transformaArray() da classe Utilitarios.");
e.printStackTrace();
return new Object[1][1];
}
return dados;
}
O erro ocorre neste método, dá uma NullPointerException e entra no catch… O negócio é que eu já testei os valores que estão no ArrayList e não tem nenhum campo null.
Existe um campo int mas eu passo pra String já que array só aceita ser de um tipo…