Listiterator
Tngo una coleccion en una bd sencilla, necesito dos botones uno que la recorra hacia adelante y otro hacia atras, el ke recorre hacia adelante funciona correctamente esta es su implementacion:
private class MonitorSiguiente implements ActionListener{
public void actionPerformed(ActionEvent e){
if (rastreadorEmpleados.hasNext()){
empleadoActual = (Empleado)rastreadorEmpleados.next();
desplegarEmpleado(empleadoActual);
} else {
empleadoActual = null;
desplegarEmpleado(empleadoActual);
rastreadorEmpleados = personal.listIterator();
}
}
}
La ke rekorre hacia atras es esta segun yo:
private class MonitorAnterior implements ActionListener{
public void actionPerformed(ActionEvent e){
if (rastreadorEmpleados.hasPrevious()){
empleadoActual = (Empleado)rastreadorEmpleados.previous();
desplegarEmpleado(empleadoActual);
} else {
empleadoActual = null;
desplegarEmpleado(empleadoActual);
rastreadorEmpleados = personal.listIterator();
}
}
}
Esto si hace el recorrido hacia atras pero al momento de llegar al ultimo registro se para y deja de retroceder, es decir no da la vuelta a la coleccion (cosa ke si hace el recorrido hacia adelante) me mencionan ke el error puede estar en la referencia a nulo pues esta es la codificaacion del iterador:
public PanelDepartamento(Departamento departamento){
this();
this.departamento = departamento;
personal = departamento.getPersonal();
rastreadorEmpleados = personal.listIterator();
empleadoActual = null;
this.desplegarEmpleado(empleadoActual);
}
public void desplegarEmpleado(Empleado empleado){
if (empleado != null){
Integer intValue = new Integer(empleado.getClave());
textFieldClave.setText(intValue.toString());
textFieldNombre.setText(empleado.getNombre());
textFieldFoto.setText(empleado.getFoto());
imagePanelFoto.setImage(textFieldFoto.getText(), 75, 75);
imagePanelFoto.repaint();
}
else if(empleado == null){
textFieldClave.setText("<< clave de identificacion >>");
textFieldNombre.setText("<< nombre del trabajador >>");
textFieldFoto.setText("sarha/fotos/T0.gif");
imagePanelFoto.setImage("sarha/fotos/T0.gif", 75, 75);
imagePanelFoto.repaint();
}
}
Agradeceria su apoyo
private class MonitorSiguiente implements ActionListener{
public void actionPerformed(ActionEvent e){
if (rastreadorEmpleados.hasNext()){
empleadoActual = (Empleado)rastreadorEmpleados.next();
desplegarEmpleado(empleadoActual);
} else {
empleadoActual = null;
desplegarEmpleado(empleadoActual);
rastreadorEmpleados = personal.listIterator();
}
}
}
La ke rekorre hacia atras es esta segun yo:
private class MonitorAnterior implements ActionListener{
public void actionPerformed(ActionEvent e){
if (rastreadorEmpleados.hasPrevious()){
empleadoActual = (Empleado)rastreadorEmpleados.previous();
desplegarEmpleado(empleadoActual);
} else {
empleadoActual = null;
desplegarEmpleado(empleadoActual);
rastreadorEmpleados = personal.listIterator();
}
}
}
Esto si hace el recorrido hacia atras pero al momento de llegar al ultimo registro se para y deja de retroceder, es decir no da la vuelta a la coleccion (cosa ke si hace el recorrido hacia adelante) me mencionan ke el error puede estar en la referencia a nulo pues esta es la codificaacion del iterador:
public PanelDepartamento(Departamento departamento){
this();
this.departamento = departamento;
personal = departamento.getPersonal();
rastreadorEmpleados = personal.listIterator();
empleadoActual = null;
this.desplegarEmpleado(empleadoActual);
}
public void desplegarEmpleado(Empleado empleado){
if (empleado != null){
Integer intValue = new Integer(empleado.getClave());
textFieldClave.setText(intValue.toString());
textFieldNombre.setText(empleado.getNombre());
textFieldFoto.setText(empleado.getFoto());
imagePanelFoto.setImage(textFieldFoto.getText(), 75, 75);
imagePanelFoto.repaint();
}
else if(empleado == null){
textFieldClave.setText("<< clave de identificacion >>");
textFieldNombre.setText("<< nombre del trabajador >>");
textFieldFoto.setText("sarha/fotos/T0.gif");
imagePanelFoto.setImage("sarha/fotos/T0.gif", 75, 75);
imagePanelFoto.repaint();
}
}
Agradeceria su apoyo