Eu crie um model de tabela com uma coluna com checkbox. Mas eu quero que ao colocar um evento na checkbox. Alguem pode me ajudar?
Modelo da JTable
package Modelo.Swing;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import Modelo.Ingrediente;
@SuppressWarnings("serial")
public class CriarPizzaTableModel extends AbstractTableModel {
private ArrayList<Ingrediente> dados;
private ArrayList<Boolean> colunaCheckbox;
private String[] colunas = { " ", "Nome", "Preço" };
@Override
public int getRowCount() {
return dados.size();
}
@Override
public int getColumnCount() {
return this.colunas.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return colunaCheckbox.get(rowIndex);
case 1:
return dados.get(rowIndex).getNome();
case 2:
return dados.get(rowIndex).getValorString();
}
return null;
}
@Override
public String getColumnName(int column) {
return colunas[column];
}
public void addRow(Ingrediente ingrediente) {
dados.add(ingrediente);
colunaCheckbox.add(Boolean.FALSE);
}
public void setDados(ArrayList<Ingrediente> dados) {
this.dados = dados;
for (int i = 0; i < dados.size(); i++) {
colunaCheckbox.add(Boolean.FALSE);
}
}
@Override
public Class<?> getColumnClass(int columnIndex) {
@SuppressWarnings("rawtypes")
Class[] types = { java.lang.Boolean.class, java.lang.String.class, java.lang.String.class };
return types[columnIndex];
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 0)
return true;
return false;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
if (columnIndex == 0) {
this.colunaCheckbox.set(rowIndex, (Boolean) aValue);
}
}
public ArrayList<Ingrediente> getDados() {
return dados;
}
public ArrayList<Boolean> getColunaCheckbox() {
return colunaCheckbox;
}
@Override
public int findColumn(String columnName) {
for (int i = 0; i < colunas.length; i++) {
if (colunas[i].equals(columnName))
return i;
}
return -1;
}
}