Bases de Datos

Amigos una consulta, estoy haciendo una consulta de usuarios con este código:

private void consultar(){
        objconexion = new conex();
        try {
            stm = (Statement)objconexion.conn.createStatement();
            rs = stm.executeQuery ("SELECT * FROM USUARIO");
            while (rs.next()){
                //envio el resultado de mi consulta a los labels label
            }}catch (SQLException ex) {System.out.println("No se obtuvo los datos de TABLE-DISPLAY "+ ex);}
        objconexion.desconectar();
       
    }

Ahora quiero crear unos botones de sean PRIMERO, ANTERIOR, SIGUIENTE, ÚLTIMO:
Si presiona:
El PRIMERO, me manda el primer usuario.
El ANTERIOR, siempre el anterior usuario
El SIGUIENTE, el siguiente usuario
El ÚLTIMO, el ultimo usuario.
Tengo entendido que el rs me podrá hacer esto??? o no??? o deberé guardar en una lista para luego pasar a presentarlo en los labels?
Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de beto.bateria

Algunos tips: Consulta

Algunos tips:

Consulta http://download.oracle.com/javase/6/docs/api/java/sql/ResultSet.html
y lee las caracteristicas de los metodos:

first()
last()
previous()

Debes de considerar el tamaño de la consulta a la base de datos por cosas de performance, en el ejemplo que usaste pues te va a traer toda la tabla, lo cual es innecesario.

Si manejas mysql, oracle o postgress puedes buscar un comando como limit que se aplica a mysql.