Galera, bom dia.
Peço ajuda de vcs com este problema.
Desde já agradeço por sua atenção.
Tenho este método para pegar os dados do banco e apresentá-los em um jTable(contas à pagar). No caso específico deste método é para ele retornar uma lista somente com as despesas que ainda não foram pagas. Acontece que foi criado um objeto Set<String> identificadores = new HashSet<String>();
, para selecionar esses dados, mas na hora dos
dados serem removidos identificadores.remove(PagamentoDespesas_CRUD.pagDesp.get(a).getNomeDespesaPaga());
, não os são removidos completamente como deveriam ser, algumas contas que já foram pagas permanecem como não sendo pagas.
OBS.: o array pagDesp, contém todas as despesas pagas, porém as que estão contidas no array e são iguais as do identificador não são removidas completamente, sempre ficam uma ou duas despesas que já foram pagas, na hora que são apresentadas no jTable(contas à pagar).
[code]public List listar_dados3() {
List<DespesasFixas_model> lista = new ArrayList<DespesasFixas_model>();
try{
co.conectar();
PreparedStatement stmt = co.con.prepareStatement(
"SELECT * FROM despesasfixas");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
DespesasFixas_model d = new DespesasFixas_model();
d.setIdDespfx(rs.getInt("idDespfx"));
d.setNomeDespesa(rs.getString("nomeDesp"));
d.setValorDespesa(rs.getDouble("valordesp"));
d.setDataDespesa(rs.getDate("datadesp"));
d.setDataVencDespesa(rs.getDate("datavenc"));
despFixas.add(d);
}
//criar um Set com o identificador
Set identificadores = new HashSet();
for(int i=0; i<despFixas.size();i++){
identificadores.add(despFixas.get(i).getNomeDespesa());
}
//agora remove todos os que pagou
for(int a=0; a<PagamentoDespesas_CRUD.pagDesp.size();a++){
identificadores.remove(PagamentoDespesas_CRUD.pagDesp.get(a).getNomeDespesaPaga());
}
//neste momento o set identificadores contém os identificadores de todas as despesas que faltam pagar.
for(int i=0; i<despFixas.size();i++){
//este metodo contains()retorna true se o elemento especificado for encontrado
if(identificadores.contains(despFixas.get(i).getNomeDespesa())){
DespesasFixas_model df1 = new DespesasFixas_model();
df1.setIdDespfx(despFixas.get(i).getIdDespfx());
df1.setNomeDespesa(despFixas.get(i).getNomeDespesa());
df1.setValorDespesa(despFixas.get(i).getValorDespesa());
df1.setDataDespesa(despFixas.get(i).getDataDespesa());
df1.setDataVencDespesa(despFixas.get(i).getDataVencDespesa());
lista.add(df1);
}
}
stmt.close();
}catch(SQLException e){
JOptionPane.showMessageDialog(null, "ERRO..."+e.getMessage(), "Consulta de Despesas Fixas", 0);
}
return lista;
}
}[/code]