Olá galera!
Fiz um modelo para a minha JTable, onde no primeiro campo aparece um checkBox, mas eu não consigo marca-lo!
O que está faltando?
Código:
public class ProdutoTableModel extends AbstractTableModel {
private final int COL_CHECK = 0;
private final int COL_NOME = 1;
private final int COL_QUANT = 2;
private List<Produto> produtos;
public ProdutoTableModel() {
produtos = new ArrayList<Produto>();
}
public ProdutoTableModel(List<Produto> lista) {
this();
produtos.addAll(lista);
}
public int getRowCount() {
return produtos.size();
}
public int getColumnCount() {
return 3;
}
@Override
public String getColumnName(int column) {
if (column == COL_CHECK){
return "#";
}
if (column == COL_NOME) {
return "Nome";
} else if (column == COL_QUANT) {
return "Quant. Disp";
}
return "";
}
@Override
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == COL_CHECK){
return Boolean.class;
}
if (columnIndex == COL_NOME) {
return String.class;
} else if (columnIndex == COL_QUANT) {
return Integer.class;
}
return super.getColumnClass(columnIndex);
}
public Object getValueAt(int rowIndex, int columnIndex) {
Produto p = produtos.get(rowIndex);
if (columnIndex == COL_CHECK){
return new Boolean(false);
}
if (columnIndex == COL_NOME) {
return p.getNome();
} else if (columnIndex == COL_QUANT) {
return p.getQuant();
}
return "";
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return (columnIndex == COL_CHECK);
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Produto p = produtos.get(rowIndex);
if (columnIndex == COL_CHECK){
new Boolean(true);
}
if (columnIndex == COL_NOME) {
p.setNome(aValue.toString());
} else if (columnIndex == COL_QUANT) {
p.setQuant(Integer.parseInt(aValue.toString()));
}
fireTableDataChanged();
}
Agradeço a ajuda!