Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/02/2013, 19:35
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Paginando Jtable

Gracias por responder, se me ocurrió lo siguiente, crear una clase llamada paginacion:

package singletonbd.dominio.clases;
public class Paginacion
{
private int paginaActual;
private int registrosTotales;
private int registrosPorPagina;
//Constructor
//------------------------------------------------------------------------------
//
public Paginacion()
{
//Sin Parámetros para javaBeans
}
public Paginacion(int paginaActual, int registrosTotales, int registrosPorPagina)
{
this.paginaActual = paginaActual;
this.registrosTotales = registrosTotales;
this.registrosPorPagina = registrosPorPagina;
}
public Paginacion(String paginaActual, int registrosTotales, int registrosPorPagina)
{
this.paginaActual = cogePaginaDeString(paginaActual);
this.registrosTotales = registrosTotales;
this.registrosPorPagina = registrosPorPagina;
}
//Getter y Setter
//------------------------------------------------------------------------------
//
public int getPaginaActual()
{
return paginaActual;
}

public void setPaginaActual(int paginaActual)
{
this.paginaActual = paginaActual;
}

public int getRegistrosPorPagina()
{
return registrosPorPagina;
}
public void setRegistrosPorPagina(int registrosPorPagina)
{
this.registrosPorPagina = registrosPorPagina;
}

public int getRegistrosTotales()
{
return registrosTotales;
}
public void setRegistrosTotales(int registrosTotales)
{
this.registrosTotales = registrosTotales;
}
//Métodos
//--------------------------------------------------------------------------
//
/**
* Devuelve el número de páginas totales a partir del número de registros
* totales y el número de registros por página. Haciendo un redondeo hacia
* arriba.
* @return int Número de páginas totales
*/
public int getTotalPaginas()
{
return (int) (Math.ceil((registrosTotales-1) / registrosPorPagina)+1);
}
/**
* Indica si existe una página siguiente después de la página actual.
* @return boolean true o false dependiendo de si existe o no
*/
public boolean getExisteSiguiente()
{
if (paginaActual >= this.getTotalPaginas())
{
return false;
}
return true;
}
/**
* Indica si existe una página anterior a la página actual.
* @return boolean true o false dependiendo de si existe o no
*/
public boolean getExisteAnterior()
{
if (paginaActual <= 1)
{
return false;
}
return true;
}

/**
* Devuelve la página siguiente en el caso de que la haya, si no la hay
* devolverá el valor de la propia página que debe ser por lo tanto la última.
* @return int número de la página siguiente
*/
public int getPaginaSiguiente()
{
return getExisteSiguiente() ? paginaActual + 1 : paginaActual;
}

/**
* Devuelve la página anterior en el caso de que la haya, si no la hay
* devolverá el valor de la propia página que debe ser por lo tanto la primera.
* @return int número de la página anterior
*/
public int getPaginaAnterior()
{
return getExisteAnterior() ? paginaActual - 1 : paginaActual;
}

//Devuelve el OFFSET que debe incluirse en la base de datos
public int offset()
{
return (int) ((paginaActual - 1) * registrosPorPagina);
}
//Devuelve el LIMIT que debe incluirse en la base de datos
public int limit()
{
return registrosPorPagina;
}

/**
* Método estatico que sirve para obtener el valor de la página en que estamos
* a partir del String que podría obtenerse del parametro GET por Ej. lista.jsp?pag=4
* Este método coge la cadena de pag y lo transforma en el valor de pagina actual.
* En caso de que el String esté vacío o no sea válido devuelve la primera página.
* @param paginaActual String que se obtiene por GET
* @return int número de la página en la que estamos
*/
public static int cogePaginaDeString(String pag) {
int pagina = 1;
//Si la pagina es null se queda con valor cero
if (pag != null)
{
try {
//Intentamos pasar el valor a un entero, si no se puede, será cero
pagina = Integer.parseInt(pag);
//Si sale un número negativo, será cero
if (pagina < 1)
{
pagina = 1;
}
} catch (NumberFormatException ex)
{
pagina = 1;
}
}
return pagina;
}
}

Última edición por detective_jd; 07/03/2013 a las 19:37