Segue meu código, este é a minha TableModel…
public class ListaRemoverCarregamentoTModel extends AbstractTableModel {
ArrayList lista = new ArrayList();
Controlar_RemoverCarregamento ctlremov;
public ListaRemoverCarregamentoTModel() {
ctlremov = new Controlar_RemoverCarregamento();
RemoverCarregamento carreg = new RemoverCarregamento();
for (int i = 0;i<3;i++) {
lista.add(carreg);
}
}
public ListaRemoverCarregamentoTModel(String id) {
ctlremov = new Controlar_RemoverCarregamento();
//lista = cadprod.carregarListaProdCoresCad(id);
CorDsv cor = new CorDsv();
for (int i=lista.size();i<6;i++) {
lista.add(cor);
}
}
public ListaRemoverCarregamentoTModel(ArrayList lista_) {
ArrayList ls = new ArrayList();
RemoverCarregamento carreg = new RemoverCarregamento();
if (!lista_.isEmpty()) {
for (int i = 0;i<lista_.size();i++) {
carreg = (RemoverCarregamento) lista_.get(i);
if (carreg.getStatus() != null) {
ls.add(lista_.get(i));
}
}
}
lista = ls;
carreg = new RemoverCarregamento();
for (int i=lista.size();i<6;i++) {
lista.add(carreg);
}
}
@Override
public String getColumnName(int column) {
String rs = "";
switch (column) {
case 0:
rs = "Status";
break;
case 1:
rs = "Plano Carga";
break;
case 2:
rs = "Pedido";
break;
case 3:
rs = "Cliente";
break;
case 4:
rs = "Item";
break;
case 5:
rs = "Qtd.Solic";
break;
case 6:
rs = "Qtd.Atendida";
break;
default:
rs = "";
}
return rs;
}
@Override
public Class getColumnClass(int columnIndex) {
Class rs;
switch (columnIndex) {
case 0:
rs = Boolean.class;
break;
case 1:
rs = Integer.class;
break;
case 2:
rs = Integer.class;
break;
case 3:
rs = Integer.class;
break;
case 4:
rs = String.class;
break;
case 5:
rs = Float.class;
break;
case 6:
rs = Float.class;
break;
default:
rs = null;
}
return rs;
}
@Override
public int getRowCount() {
return lista.size();
}
@Override
public int getColumnCount() {
return 7;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
RemoverCarregamento carreg = (RemoverCarregamento) lista.get(rowIndex);
Object rs= "";
switch (columnIndex) {
case 0:
if(carreg.getStatus()!=null){
rs = carreg.getStatus();
} else {
carreg.setStatus(Boolean.FALSE);
rs = carreg.getStatus();
}
break;
case 1:
rs = carreg.getPlano_carga();
break;
case 2:
rs = carreg.getNum_pedido();
break;
case 3:
rs = carreg.getCod_cliente();
break;
case 4:
rs = carreg.getCod_item();
break;
case 5:
rs = carreg.getQtd_solicitada();
break;
case 6:
rs = carreg.getQtd_atendida();
break;
default:
rs = "";
}
if (columnIndex == 0)
return rs;
else
return rs;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
boolean[] canEdit = new boolean [] {true,false,false,false,false,false,false};
return canEdit [columnIndex];
}
public void limpaLista() {
int i = lista.size();
lista.clear();
fireTableRowsDeleted(0, i - 1);
}
public void remove(int indice) {
lista.remove(indice);
fireTableRowsDeleted(indice, indice);
}
public void setSelecionado(int rowIndex, Boolean value) {
RemoverCarregamento carreg= (RemoverCarregamento) this.lista.get(rowIndex);
carreg.setStatus(value);
}
}
Está e a minha CheckBoxCellEditor
public class CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor {
private JCheckBox checkbox;
private int rota;
private int tamanho;
private ListaRemoverCarregamentoTModel rtmodel;
@Override
public Object getCellEditorValue() {
return checkbox;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
checkbox = new JCheckBox();
checkbox.setSelected(isSelected);
table.setRowHeight(30);
rota = row;
rtmodel=(ListaRemoverCarregamentoTModel) table.getModel();
tamanho = rtmodel.getRowCount();
return checkbox;
}
public void refreshTable(){
getCellEditorValue();
}
@Override
public boolean stopCellEditing() {
rtmodel.setSelecionado(rota,checkbox.getModel().isSelected());
return super.stopCellEditing();
}
}
Essa e a minha beans que eu guardo…
public class RemoverCarregamento {
private String cod_empresa;
private int plano_mestre;
private int plano_carga;
private int num_pedido;
private int cod_cliente;
private String cod_item;
private float qtd_solicitada;
private float qtd_atendida;
private Boolean status;
Não estou conseguindo fazer com q ele preencha um por vez, ou é tudo ou e nada…, alguem tem alguma solução?