Hola a todos, mi consulta es la sgte: tengo una clase
public class Estadio
{
private int numero;
private String nombre;
private int capacidad;
private int posicion; // variable para la posicion donde esta la fila
private int posXfiltro; // variable temporal para hacer los filtros
public static int autoID=0;
public int getNumero(){
return numero;
}
public String getNombre(){
return nombre;
}
public void setNombre(String nombre){
this.nombre = nombre;
}
public int getCapacidad(){
return capacidad;
}
public void setCapacidad(int capacidad){
this.capacidad = capacidad;
}
public int getPosicion() {
return posicion;
}
public void setPosicion(int posicion){
this.posicion = posicion;
}
public int getPosXfiltro() {
return posXfiltro;
}
public void setPosXfiltro(int posXfiltro) {
this.posXfiltro = posXfiltro;
}
public Estadio(int numero, String nombre, int capacidad){
this.numero = numero;
this.nombre = nombre.toUpperCase();
this.capacidad = capacidad;
}
@Override
public boolean equals(Object obj){
if(obj instanceof Estadio)
{
Estadio objestadio=(Estadio)obj;
return objestadio.nombre.equals(this.nombre);
}
else
return false;
}
@Override
public String toString() {
return "ESTADIO:" + numero + " NOMBRE:" + nombre + " CAPACIDAD:" + capacidad;
}
public static int obtenerUltimoID(){
return autoID+1;
}
public static void incrementarID(){
autoID++;
}
}
resulta q tengo unos métodos en mi clase gestEstadios q me busca las posiciones pero sólo me sirve para un TreeMap o HashMap único:
public Estadio obtenerElemento(int posicion)
{
Estadio objestadio=null;
for(Estadio obje : colestadios.values())
{
if(obje.getPosicion()==posicion)
{
objestadio=obje;
}
}
return objestadio;
}
public TreeMap<Integer,Estadio>devolverDatosXFiltro(Strin g criterio)
{
TreeMap<Integer,Estadio>aux =new TreeMap();
int posTemp=0;
for(Estadio obje : colestadios.values())
{
if(obje.getNombre().substring(0, criterio.length()).equalsIgnoreCase(criterio))
{
obje.setPosXfiltro(posTemp);
aux.put(obje.getNumero(), obje);
posTemp++;
}
else
{
obje.setPosXfiltro(-1);
}
}
return aux;
}
public Estadio obtenerElementoXFiltro(int posicion)
{
Estadio objestadio=null;
for(Estadio obje : colestadios.values())
{
if(obje.getPosXfiltro()==posicion && obje.getPosXfiltro()!=-1)
{
objestadio=obje;
}
}
return objestadio;
}
aqui hago en la parte gráfica el listado:
private void cargarEstadios()
{
objpe.setPaginableListener(new IPaginador() {
@Override
public void onPage(Paginador paginable, int page) {
objte.setModelo((DefaultTableModel)objte.getModelo ());
objte.getModelo().setRowCount(0);
for (int i = paginable.from(); i < paginable.to(); i++)
{
if(GestEstadios.getInstance().devolverDatos().size ()>i)
{
Estadio obje=GestEstadios.getInstance().obtenerElemento(i) ;
Object[]row={obje.getNumero(),obje.getNombre(),obje.getCap acidad()};
objte.getModelo().addRow(row);
continue;
}
break;
}
}
});
objpe.setPage(1);
}
el problema es q si quiero por ejemplo hacer en una clase pais poner los estadios de ese país no puedo paginarlos de la misma manera, no sé cómo replantear mi forma de paginar para los maps xq para las listas me funciona muy bien.