Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/10/2005, 12:40
MikiBroki
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 1 mes
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;  
    
  }
  
 
}