Lo que puedes hacer tambien es si quieres usar un arreglo de una clase y ponerlo
en un jtable ,pero solo algunos campos:
debes usar AbstractTableModel algo asi:
/**
Este es un ejemplo de un arreglo de PedidoD que se agregan a un JTable
*/
//DECLARAS LAS VARIABLES
public PedidoD[] pedidoD;
public String[] columnas;
public tablaDetallePedidos2 modelTable2;
//INICIALIZAS LOS DATOS
this.columnas = new String[]{"Id ", "Cantidad", "Codigo", "Nombre Articulo", "U.M.", "%Dscto.", "Dscto.", "P.U.", "SubTotal"};
this.pedidoD = new PedidoD[0];//AQUI LE CARGAS EL ARREGLO DE LA CLASE
modelTable2 = new tablaDetallePedidos2();
jTable1.setModel(modelTable2);
//CREAR UNA CLASE INTERNA
public class tablaDetallePedidos2 extends AbstractTableModel {
public tablaDetallePedidos2() {
}
Class[] types = new Class[]{
java.lang.Integer.class, java.math.BigDecimal.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.math.BigDecimal.class, java.math.BigDecimal.class, java.math.BigDecimal.class, java.math.BigDecimal.class
};
boolean[] canEdit = new boolean[]{
false, false, false, false, false, false, false, false, false
};
public void setCanEdit(boolean[] canEdit) {
this.canEdit = canEdit;
}
@Override
public Class getColumnClass(int columnIndex) {
return types[columnIndex];
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0://indice
if (aValue instanceof Integer) {
pedidoD[rowIndex].setNitem((Integer) aValue);
} else {
pedidoD[rowIndex].setNitem((Integer) null);
}
break;
case 1:
if (aValue instanceof BigDecimal) {
pedidoD[rowIndex].setNcantidad((BigDecimal) aValue);
BigDecimal cantidad = new BigDecimal(0);
BigDecimal precio = new BigDecimal(0);
BigDecimal subtotal = new BigDecimal(0);
cantidad = new BigDecimal(String.valueOf(aValue));
if (pedidoD[rowIndex].getNprecio_unitario() != null) {
precio = pedidoD[rowIndex].getNprecio_unitario();
}
subtotal = cantidad.multiply(precio);
pedidoD[rowIndex].setNprecio_importe(subtotal);
jFormattedTextField1.setValue(sumarTotalimporte());
} else {
pedidoD[rowIndex].setNcantidad((BigDecimal) getValueAt(rowIndex, 1));
}
break;
case 2:
if (aValue instanceof String) {
pedidoD[rowIndex].setCcod_articulo((String) aValue);
} else {
pedidoD[rowIndex].setCcod_articulo((String) null);
}
break;
case 3:
if (aValue instanceof String) {
pedidoD[rowIndex].setCnom_articulo((String) aValue);
} else {
pedidoD[rowIndex].setCnom_articulo((String) null);
}
break;
case 4:
if (aValue instanceof String) {
pedidoD[rowIndex].setCunidad((String) aValue);
} else {
pedidoD[rowIndex].setCunidad((String) aValue);
}
break;
case 5:
if (aValue instanceof BigDecimal) {
pedidoD[rowIndex].setNporc_dscto((BigDecimal) aValue);
} else {
pedidoD[rowIndex].setNporc_dscto((BigDecimal) null);
}
break;
case 6:
if (aValue instanceof BigDecimal) {
pedidoD[rowIndex].setPorcentaje((BigDecimal) aValue);
} else {
pedidoD[rowIndex].setPorcentaje((BigDecimal) aValue);
}
break;
case 7:
if (aValue instanceof BigDecimal) {
pedidoD[rowIndex].setNprecio_unitario((BigDecimal) aValue);
BigDecimal cantidad = new BigDecimal(0);
BigDecimal precio = new BigDecimal(0);
BigDecimal subtotal = new BigDecimal(0);
precio = new BigDecimal(String.valueOf(aValue));
if (pedidoD[rowIndex].getNcantidad() != null) {
cantidad = pedidoD[rowIndex].getNcantidad();
}
subtotal = cantidad.multiply(precio);
pedidoD[rowIndex].setNprecio_importe(subtotal);
jFormattedTextField1.setValue(sumarTotalimporte());
} else {
pedidoD[rowIndex].setNprecio_unitario((BigDecimal) null);
}
break;
case 8:
if (aValue instanceof BigDecimal) {
pedidoD[rowIndex].setNprecio_importe((BigDecimal) aValue);
} else {
pedidoD[rowIndex].setNprecio_importe((BigDecimal) null);
}
break;
}
fireTableRowsUpdated(rowIndex, rowIndex);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return (Object) pedidoD[rowIndex].getNitem();
case 1:
return (Object) pedidoD[rowIndex].getNcantidad();
case 2:
return (Object) pedidoD[rowIndex].getCcod_articulo();
case 3:
return (Object) pedidoD[rowIndex].getCnom_articulo();
case 4:
return (Object) pedidoD[rowIndex].getCunidad();
case 5:
return (Object) pedidoD[rowIndex].getNporc_dscto();
case 6:
return (Object) pedidoD[rowIndex].getPorcentaje();
case 7:
return (Object) pedidoD[rowIndex].getNprecio_unitario();
case 8:
return (Object) pedidoD[rowIndex].getNprecio_importe();
default:
return null;
}
}
@Override
public int getColumnCount() {
return columnas.length;
}
@Override
public int getRowCount() {
return pedidoD.length;
}
@Override
public String getColumnName(int column) {
return columnas[column];
}
}