DBNavigator com ArrayList?

salve salve galera…

Seguinte, como eu faço um dbnavigator usando ArrayList ?
Quero fazer algo como.

|<<(btn primeiro registro)
<(btn registro anterior)

(btn proximo registro)

|(btn ultimo registro)

Tentei usar o Iterator porem ainda naum tive resultados.

//aqui meu DAO
public List<Registros> consultaRegistros(){
  List<Registros lista = new ArrayList();
  PreparedStatement stm = this.con.prepareStatement("select * from tabela");
  ResultSet rs = stm.executeQuery();
  while(rs.next()){
     Registros regs = new Registros();
     //gets
     lista.add(regs);
  }
  rs.close();
  stm.close();
  return lista;
}
//aqui minha lista com os registros q preciso
List<Registros> meusRegistros = registrosDAO.consultaRegistros();

Como fazer isso ?

obrigado

Vamos lá man…

Fiz um trechinho de código pra te ajudar… mas nesse eu estou usando um Javabeans chamado Item…

Esse é o POJO

package test;

public class Item {
	private int codigo;
	private String nome;
	
	public Item() {
	}

	public Item(int codigo, String nome) {
		this.codigo = codigo;
		this.nome = nome;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}


	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	@Override
	public String toString() {
		return nome;
	}

}

Essa é a classe que gerencia o DBNavigator

package test;

import java.util.List;

public class DBNavigatorDAO {
	private List<Item> list;
	private int index;

	public DBNavigatorDAO(List<Item> list) throws Exception {
		if (list.size() > 0) {
			this.list = list;
			index = 0;
		} else {
			throw new Exception("A lista deve conter ao menos 1 item");
		}
	}

	public Item getFirstItem() {
		index = 0;
		return getCurrentItem();
	}

	public Item getLastItem() {
		index = list.size() - 1;
		return getCurrentItem();
	}

	public Item getNextItem() throws Exception {
		if (getIndex() < list.size() - 1) {
			index++;
			return getCurrentItem();
		} else {
			throw new Exception("Este é o ultimo item");
		}
	}

	public Item getPreviousItem() throws Exception {
		if (getIndex() > 0) {
			index--;
			return getCurrentItem();
		} else {
			throw new Exception("Este é o primeiro item");
		}
	}

	public int getIndex() {
		return index;
	}

	private Item getCurrentItem() {
		return list.get(index);
	}

}

E essa é a classe de Test

package test;

import java.util.ArrayList;
import java.util.List;

public class MainDBNavigatorTest {

	public static void main(String[] args) throws Exception {
		List<Item> listItems = new ArrayList<Item>();
		listItems.add(new Item(1, "Test1"));
		listItems.add(new Item(2, "Test2"));
		listItems.add(new Item(3, "Test3"));

		DBNavigatorDAO dao = new DBNavigatorDAO(listItems);
		System.out.println(dao.getFirstItem());
		System.out.println(dao.getNextItem());
		System.out.println(dao.getNextItem());

		System.out.println(dao.getLastItem());
		System.out.println(dao.getPreviousItem());
		System.out.println(dao.getPreviousItem());

		System.out.println(dao.getFirstItem());

	}

}

O Funcionamento é simples… a classe DBNavigatorDAO controla o index interno do List… ao chamar O next ou previous , voce pode receber duas respostas:

Ou o objeto desejado… ou uma exceção dizendo que voce chegou ao limite da lista…

sendo assim tudo o que voce tem que fazer é um try-catch nesses botões.

Intéh man

Algumas classe de Collection tem Iterators com mais opções.
O ListIterator permite que você itere uma List nas duas direções, para frente e para trás.
Para ir para o primeiro é só usar o método get(0) da interface List e para pegar o último você pode usar get(tamanho da lista-1). Tamanho da lista pode ser recebido com o método size da classe Collections…

opa, obrigado galera…

achei um exemplo aqui de como fazer com ListIterator

http://www.devmanuals.com/tutorials/java/collections/iterator/ListIteratorInterface/

t+ e novamente, obrigado.