01/10/2005, 12:40
|
| | Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 9 meses Puntos: 8 | |
Gracias por responder,
Llega hasta el setDatos del modelo, pero no entra en el render (en xp)
Esta es la llamada al otro JFrame, en el que se muestra la tabla (aDatos es el arrayList que usará la tabla como modelo):
Código:
SeleccionarPersona ventanaSeleccionarPersona;
ventanaSeleccionarPersona = new SeleccionarPersona("Seleccione el Profesor");
ventanaSeleccionarPersona.setModeloDatos(aDatos);
Este es el código del modelo:
Código:
package modelosYrender;
import mypackage.Persona;
import java.util.ArrayList;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class ModeloSeleccionarPersona extends DefaultTableModel
{
private String[] aNombresColumnas = {"NOMBRE" , "NIF" , "TLF1" , "TLF2" , "MÓVIL" , "FAX" , "DIRECCIÓN", "POBLACIÓN", "PROVINCIA", "MUNICIPIO", "C.POSTAL" };
private Class[] aTiposCampos = {String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class};
private ArrayList miArrayListDatos = null;
//----------------------------------------------------------------------------
public ModeloSeleccionarPersona()
{
}
//----------------------------------------------------------------------------
public int getRowCount()
{
if (this.miArrayListDatos == null)
return 0;
else
return this.miArrayListDatos.size();
}
//----------------------------------------------------------------------------
public int getColumnCount()
{
return this.aNombresColumnas.length;
}
//----------------------------------------------------------------------------
public String getColumnName(int columnIndex)
{
return this.aNombresColumnas[columnIndex];
}
//----------------------------------------------------------------------------
public Class getColumnClass(int columnIndex)
{
return this.aTiposCampos[columnIndex];
}
//----------------------------------------------------------------------------
public boolean isCellEditable(int rowIndex, int columnIndex)
{
return false;
}
//----------------------------------------------------------------------------
public Object getValueAt(int rowIndex, int columnIndex)
{
if (columnIndex == 0)
//return ( (Persona) this.miArrayListDatos.get(rowIndex) ).getNombre();
return ((Persona) this.miArrayListDatos.get(rowIndex)).getNombre() + " " + ((Persona) this.miArrayListDatos.get(rowIndex)).getApellido1() + " " + ((Persona) this.miArrayListDatos.get(rowIndex)).getApellido2();
else if (columnIndex == 1)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getNif();
else if (columnIndex == 2)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getTelefono1();
else if (columnIndex == 3)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getTelefono2();
else if (columnIndex == 4)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getMovil();
else if (columnIndex == 5)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getFax();
else if (columnIndex == 6)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getDireccion();
else if (columnIndex == 7)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getPoblacion();
else if (columnIndex == 8)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getProvincia();
else if (columnIndex == 9)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getMunicipio();
else if (columnIndex == 10)
return ( (Persona) this.miArrayListDatos.get(rowIndex)).getCodigoPostal();
else
return null;
}
//----------------------------------------------------------------------------
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
{
}
//----------------------------------------------------------------------------
public void setDatos(ArrayList datos)
{
int contador;
// Asigna al modelo el ArrayList con los datos
this.miArrayListDatos = datos;
System.out.println("llego hasta asignar el arraylist al modelo, debería ir ahora al render");
// Fuerza a que se refresque la tabla
this.fireTableDataChanged();
}
//----------------------------------------------------------------------------
public Persona getDatos(int fila)
{
return ( (Persona) this.miArrayListDatos.get(fila) );
}
}
Y el del renderizador:
Código:
package modelosYrender;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
public class RenderSeleccionarPersona implements TableCellRenderer
{
private JLabel etiqueta = new JLabel();
//----------------------------------------------------------------------------
public RenderSeleccionarPersona()
{
this.etiqueta.setOpaque(true);
}
//----------------------------------------------------------------------------
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
System.out.println("estoy en el renderer");
if (isSelected)
{
this.etiqueta.setBackground(Color.CYAN);
}
else
{
this.etiqueta.setBackground(Color.ORANGE);
}
this.etiqueta.setText(value.toString());
return etiqueta;
}
}
|