Package practica1.ui.tablaPoblacion

Source Code of practica1.ui.tablaPoblacion.TablaPoblacion

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package practica1.ui.tablaPoblacion;

import javax.swing.JTable;
import javax.swing.event.ChangeEvent;
import javax.swing.table.TableColumnModel;


/**
* Componente que extiend de JTable e implementa un modelo de la población
* para representar los datos
* @author Miguel González - Miguel
*/
public class TablaPoblacion extends JTable {
   
    private ModeloPoblacionTabla modeloPoblacionTabla;
    private TablaCellEditorTextField editor;
   
    /**
     * Constructor del objeto
     * @param modeloTabla Modelo de la tabla
     */
    public TablaPoblacion(ModeloPoblacionTabla modeloTabla) {
        super();
       
        this.modeloPoblacionTabla = modeloTabla;
       
        init();
    }
   
    /**
     * Inicializa la tabla
     */
    private void init() {
        //Creamos el cell editor de tipo TextField
        editor = new TablaCellEditorTextField();
       
        //Establecemos la tabla en el modelo
        setModeloTabla(modeloPoblacionTabla);
    }
   
    /**
     * Listens for cells that has been edited. When a cell has been edited, this
     * function will run.
     */
    @Override
    public void editingStopped(ChangeEvent e) {
        String valor = (String)editor.getCellEditorValue();
        int row = editor.getRow();
        int column = editor.getColumn();
       
        //Actualizamos el modelo de la tabla
        modeloPoblacionTabla.setValueAt(valor, row, column);
       
        //Le decimos al JTable que pare de editar
        super.editingStopped(e);
    }
   
    /**
     * Devuelve el modelo de la tabla
     * @return ModeloPoblacionTabla
     */
    public ModeloPoblacionTabla getModeloTabla() {
        return modeloPoblacionTabla;
    }
   
    /**
     * Establece un nuevo modelo de la tabla
     * @param ModeloPoblacionTabla
     */
    public void setModeloTabla(ModeloPoblacionTabla modeloTabla) {
        this.modeloPoblacionTabla = modeloTabla;
        setModel(modeloTabla);
       
        //Al cambiar el modelo de la tabla es necesario volver a especificar
        //Los editores de las tablas
        especificarCellEditor();
       
        //Repintamos la tabla
        repaint();
    }
   
    /**
     * Especifica los cellEditor que tendrán cada columna
     */
    private void especificarCellEditor() {
        TableColumnModel tablaColumnModel = getColumnModel();

        tablaColumnModel.getColumn(1).setCellEditor(editor);
        tablaColumnModel.getColumn(2).setCellEditor(editor);
        tablaColumnModel.getColumn(3).setCellEditor(editor);
        tablaColumnModel.getColumn(4).setCellEditor(editor);
    }
}
TOP

Related Classes of practica1.ui.tablaPoblacion.TablaPoblacion

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.