ArrayList

3 respostas
S

Olá pessoal, tenho uma tela de pesquisa onde tenho um Jbutton btnProximo, quando eu clico no botão ele vai avançando nos valores do arrayList.
Mas estou com dificuldades em buscar os dados.
Ex: DAO

public List<LogradouroBean> proximoRegistro(){
		LogradouroBean logradouro = null;
		List<LogradouroBean> lista = new ArrayList<LogradouroBean>();
		try{
			pstmt = conexao.prepareStatement("select *from logradouro order by codigo");
			ResultSet rs = pstmt.executeQuery();
			while(rs.next()){
				logradouro = new LogradouroBean();
				logradouro.setCodigo(rs.getString("codigo"));
				logradouro.setNome(rs.getString("nome"));
				lista.add(logradouro);
			}
			return lista;
		}
		catch(SQLException e){
			JOptionPane.showMessageDialog(null, e.getMessage());
			return null;
		}
	}

Evento do botão

if(e.getSource() == btnProxRegistro){
			LogradouroDAO dao = new LogradouroDAO();
			List<LogradouroBean> lista;
			lista = dao.proximoRegistro();
			for(int i = 0; i < lista.size(); i++){
				LogradouroBean bean = lista.get(i);
				txtCodigo.setText(bean.getCodigo());
				txtNome.setText(bean.getNome());
			}
		}

3 Respostas

Rafael_Carneiro

Primeiro você tem que definir quantos registro você irá buscar quando o usuário apertar o botão próximo.

dudu_sps

Faça um indicador de qual registor voce ta

Dai no Botão proximo voce pode apenas incrementar esse indicador… ao invez de fazer outro for

e voce testa se tem como incrementar se não tiver como incrementar ou voce não da ação nenhuma ou joga para o primeiro registro

faça a mesma coisa com o botão voltar e no botão ultimo voce faz assim

indicador = list.size() -1;

e no botão primeiro

indicador = 0;

claro… sempre fazendo as devidas verificações

Marck

Bom dia,

Pelo que entendi, voce tem que primeiro buscar os dados do endereço e deixar em um List:

private List<LogradouroBean> listaLogradouros;
    private int regAtual;

    public List<LogradouroBean> buscarLogradouros(){  
        LogradouroBean logradouro = null;  
        List<LogradouroBean> lista = new ArrayList<LogradouroBean>();  
        try{  
            pstmt = conexao.prepareStatement("select *from logradouro order by codigo");  
            ResultSet rs = pstmt.executeQuery();  
            while(rs.next()){  
                logradouro = new LogradouroBean();  
                logradouro.setCodigo(rs.getString("codigo"));  
               logradouro.setNome(rs.getString("nome"));  
               lista.add(logradouro);  
           }  
      
           listaLogradouros = list;
           return lista;
       }  
       catch(SQLException e){  
           JOptionPane.showMessageDialog(null, e.getMessage());  
           return null;  
       }  
   }

De acordo com o regAtual, voce vai saber qual é o atual, o proximo e o anterior:

public LogradouroBean proximo()
{
     ++regAtual;
     try{
           return listaLogradouros.get(regAtual);
     }catch(ArrayIndexOutOfBounds out){ out.printStackTrace();}
}

public LogradouroBean anterior()
{
     --regAtual;
     try{
          return listaLogradouros.get(regAtual);
     }catch(ArrayIndexOutOfBounds out){ out.printStackTrace();}
}

Voce só tem que controlar melhor esse tal de “regAtual”.

abraço!

Criado 21 de dezembro de 2009
Ultima resposta 22 de dez. de 2009
Respostas 3
Participantes 4