Navegar nos registros do banco de dados

bom dia amigos, estou com um problema para navegar nos registros do meu banco de dados.
quando eu clico no botão para avançar um registro a frente, ele salta para o ultimo registro e quando eu clico no botão para
voltar um registro, nada acontece (Os dois botões para ir direto para o ultimo e o primeiro registro funciona perfeitamente)
agradeço desde já a ajuda te todos. Obrigado.

Vou postar meu código:

private void buttonAnteriorMouseClicked(java.awt.event.MouseEvent evt)
{
this.anteriorRegistro();
}
//#################################################################################################################################
//######### MÉTODO PARA ACESSAR O REGISTRO ANTERIOR NA BASE DE DADOS ##############################################################

public void anteriorRegistro()
{
    conexao.Conectar("jdbc:mysql://localhost:3306/avaliacao","root","123");
    try
    {
        conexao.rs = conexao.stmt.executeQuery("SELECT * FROM clientes");
        while (conexao.rs.previous())
        {
            fieldCodigo.setText(conexao.rs.getString("idclientes"));
            fieldNome.setText(conexao.rs.getString("nome"));                   // Recebe o dado do campo nome da base de dados e insere no campo NOME do formulario principal
            fieldCPF.setText(conexao.rs.getString("cpf"));                     // Recebe o dado do campo cpf da base de dados e insere no campo CPF do formulario principal
            fieldRG.setText(conexao.rs.getString("rg"));                       // Recebe o dado do campo rg da base de dados e insere no campo RG do formulario principal
            fieldEndereco.setText(conexao.rs.getString("endereco"));           // Recebe o dado do campo endereco da base de dados e insere no campo ENDEREÇO do formulario principal
            fieldBairro.setText(conexao.rs.getString("bairro"));               // Recebe o dado do campo bairro da base de dados e insere no campo BAIRRO do formulario principal
            fieldCidade.setText(conexao.rs.getString("cidade"));               // Recebe o dado do campo cidade da base de dados e insere no campo CIDADE do formulario principal
            comboEstado.setSelectedItem(conexao.rs.getString("estado"));       // Recebe o dado do campo estado da base de dados e insere no campo ESTADO do formulario principal
            fieldCEP.setText(conexao.rs.getString("cep"));                     // Recebe o dado do campo cep da base de dados e insere no campo CEP do formulario principal
            fieldDataNasc.setText(conexao.rs.getString("dataNascimento"));     // Recebe o dado do campo dataNascimento da base de dados e insere no campo DATA DE NASCIMENTO do formulario principal
            fieldDataDoCadastro.setText(conexao.rs.getString("dataCadastro")); // Recebe o dado do campo dataCadastro da base de dados e insere no campo DATA DO CADASTRO do formulario principal
        }
    }
    catch(SQLException sqlex)
    {
        sqlex.printStackTrace();
    }
}

//################################################################################################################################

private void buttonProximoMouseClicked(java.awt.event.MouseEvent evt) {                                           
    proximoRegistro();
}                                          

// ##### MÉTODO PARA ACESSAR O PRÓXIMO REGISTRO DA BASE DADOS ####################################################################

public void proximoRegistro()
{
    conexao.Conectar("jdbc:mysql://localhost:3306/avaliacao","root","123");
    try
    {
        conexao.rs = conexao.stmt.executeQuery("SELECT * FROM clientes");
        
        while(conexao.rs.next())
        {
            fieldCodigo.setText(conexao.rs.getString("idclientes"));          // Retorna o código do cliente
            fieldNome.setText(conexao.rs.getString("nome"));                  // Retorna o nome do cliente
            fieldCPF.setText(conexao.rs.getString("cpf"));                    // Retorna o cpf do cliente
            fieldRG.setText(conexao.rs.getString("rg"));                      // Retorna o rg do cliente
            fieldDataNasc.setText(conexao.rs.getString("dataNascimento"));    // Retorna a data de nascimento do cliente
            fieldEndereco.setText(conexao.rs.getString("endereco"));          // Retorna o endereço do cliente
            fieldBairro.setText(conexao.rs.getString("bairro"));              // Retorna o bairro do cliente
            fieldCidade.setText(conexao.rs.getString("cidade"));              // Retorna a cidade do cliente
            comboEstado.setSelectedItem(conexao.rs.getString("estado"));      // Retorna o estado do cliente
            fieldDataDoCadastro.setText(conexao.rs.getString("dataCadastro"));// Retorna a data do cadastro
            fieldCEP.setText(conexao.rs.getString("cep"));                    // Retorna o cep do endereço do clliente
        }
        
    }
    catch(SQLException sqlex)
    {
        sqlex.printStackTrace();
        JOptionPane.showMessageDialog(null,"Erro de SQL");
    }
}