Problemas com o ResultSet

Minha aplicação faz uma consulta ao banco e depois pode-se mover entre os registros:

Assim:

  // Método recebe ResultSet atualizado. 
  private void gotoRegister(ResultSet rs) {   
      
      if(proximo)
         rs.next();
      if(anterior)
         rs.previous();
      if(primeiro)
         rs,.first();
      if(ultimo)
         rs.last(); 
    
   }

Perguntas:

Quando eu faço if(resultSet.next()) eu estou apenas perguntando se existe um próximo registro ou já estou movendo para o próximo registro?

E principalmente: Minha aplicação não pode gerar Exceções, e conforme eu vou passeando pelos registros, chega um momento em que começa a aparecer a exceção java.sql.Exception no data is avaliable.
Eu não quero que o ponteiro se mova além das tuplas existentes, quero que ele se movimente apenas da primeira até a última.
O objetivo é:
Ao se clicar no botão primeiro, o resultSet deve ir para a primeira tupla.
Ao se clicar no botão último, o resultSet deve ir para a última tupla.
Ao se clicar no botão próximo, o resultSet deve ir para a tupla posterior, e continue assim até chegar a última tupla. Ou seja, para se chegar ao último registro no banco de dados, clica-se no bõtão último ou então clica-se no botão próximo até se chegar no último registro.
Ao se clicar no botão anterior, o resultSet deve ir para a tupla anterior, e continue assim até chegar na primeira tupla. Ou seja, para se chegar ao primeiro registro no banco de dados, clica-se no bõtão primeiro ou então clica-se no botão anterior até se chegar no primeiro registro.

Apenas setando resultSet.next(), resultSet.previous(), resultSet.first(), resultSet.last() não está gerando o efeito desejado.

Qualquer ajuda seria bem vinda.
Obrigado!

O método next() retorna true caso hajam próximos resultador no resultset E coloca o cursor no proximo resultado.

Para outras dúvidas, consulte a documentação.

http://72.5.124.55/j2se/1.5.0/docs/api/java/sql/ResultSet.html#next()

Repare que existem configuraçoes para determinadas formas de percorrer o resultset.

Sugiro que você faça isso com uma coleção inves de trabalhar diretamente com um ResultSet, senão a orientação a objetos da sua aplicação vai por agua abaixo.

Nunca trabalhei com coleções.
Algum exemplo disponível?