package com.blogspot.rolandopalermo.bean;
/**
*
* @author Rolando
*/
public class Cliente {
private int id;
private int edad;
private String nombre;
private String nombreEmpresa;
private String nombreContacto;
private String direccion;
public Cliente(int id, int edad, String nombre, String nombreEmpresa, String nombreContacto, String direccion) {
this.id = id;
this.edad = edad;
this.nombre = nombre;
this.nombreEmpresa = nombreEmpresa;
this.nombreContacto = nombreContacto;
this.direccion = direccion;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombreContacto() {
return nombreContacto;
}
public void setNombreContacto(String nombreContacto) {
this.nombreContacto = nombreContacto;
}
public String getNombreEmpresa() {
return nombreEmpresa;
}
public void setNombreEmpresa(String nombreEmpresa) {
this.nombreEmpresa = nombreEmpresa;
}
}
package com.blogspot.rolandopalermo.gui;
import com.blogspot.rolandopalermo.bean.Cliente;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
*
* @author Rolando
*/
public class TablaModeloCliente extends AbstractTableModel {
private String[] columnNames = {"DNI", "Nombre", "Edad", "Dirección", "Empresa", "Contacto"};
private List<cliente> clientes = new ArrayList<cliente>();
public void agregarCliente(Cliente cliente) {
clientes.add(cliente);
fireTableDataChanged();
}
public void eliminarCliente(int rowIndex) {
clientes.remove(rowIndex);
fireTableDataChanged();
}
public void limpiarClientes() {
clientes.clear();
fireTableDataChanged();
}
@Override
public String getColumnName(int columnIndex) {
return columnNames[columnIndex];
}
@Override
public int getRowCount() {
return clientes.size();
}
@Override
public int getColumnCount() {
return 6;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return clientes.get(rowIndex).getId();
case 1:
return clientes.get(rowIndex).getNombre();
case 2:
return clientes.get(rowIndex).getEdad();
case 3:
return clientes.get(rowIndex).getDireccion();
case 4:
return clientes.get(rowIndex).getNombreEmpresa();
case 5:
return clientes.get(rowIndex).getNombreContacto();
default:
return null;
}
}
@Override
public Class getColumnClass(int columnIndex) {
// return getValueAt(0, columnIndex).getClass();
return String.class;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
Cliente cliente = clientes.get(rowIndex);
switch (columnIndex) {
case 0:
cliente.setId((Integer) value);
case 1:
cliente.setNombre((String) value);
case 2:
cliente.setEdad((Integer) value);
case 3:
cliente.setDireccion((String) value);
case 4:
cliente.setNombreEmpresa((String) value);
case 5:
cliente.setNombreContacto((String) value);
}
fireTableCellUpdated(rowIndex, columnIndex);
}
}
Y para renderizar los datos en la grilla, crearemos la clase TablaRenderizadorCliente la cuál determinará las propiedades gráficas y el comportamiento gráfico de las celdas que van a componer la tabla.package com.blogspot.rolandopalermo.gui;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
/**
*
* @author Rolando
*/
public class TablaRenderizadorCliente implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel etiqueta = new JLabel();
etiqueta.setOpaque(true);
/*
* Coloreamos las filas
*/
if (row % 2 == 0) {
etiqueta.setBackground(new Color(255, 255, 200));
} else {
etiqueta.setBackground(Color.white);
}
/*
* Para establecer el tipo de icono
*/
if (column == 1) {
String nombre = (String) value;
etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
if (nombre.startsWith("#")) { //Hombre
etiqueta.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/blogspot/rolandopalermo/recursos/user.png"))); // NOI18N
} else if (nombre.startsWith("&")) { //Mujer
etiqueta.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/blogspot/rolandopalermo/recursos/user2.png"))); // NOI18N
}
etiqueta.setText(value.toString().substring(1, nombre.length()));
} else {
etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
etiqueta.setText(value.toString());
}
/*
* Para una fila seleccionada
*/
if (isSelected) {
etiqueta.setBackground(new Color(151, 193, 215));
}
return etiqueta;
}
}
TablaModeloCliente modelo = new TablaModeloCliente(); TablaRenderizadorCliente renderizador = new TablaRenderizadorCliente(); tablaClientes.setModel(modelo); tablaClientes.setDefaultRenderer(String.class, renderizador);Y para finalizar les dejo el enlace del proyecto para descargar.
Para ver más los post más viistados así como enterarse de las novedades sigue este blog en Facebook:



















