Pessoal,
Eu tenho uma tabela que tem um AbstractTableModel associado a ela. A primeira coluna é uma checkbox.
Eu gostaria de saber por que motivo não consigo selecionar as checkboxes que adiciono nesse modelo. Observem que no código abaixo o método isCellEditable retorna true para essa coluna e mesmo assim não consigo selecionar.
desde já agradeço!
package br.com.lgc.realtime.gui.model;
import br.com.lgc.exatapipeline.CurveParameters;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ExataCurveTableModel extends AbstractTableModel {
ArrayList<Object[]> tableData=new ArrayList();
public static final int GET_CURVE_COLUMN = 0;
public static final int ORINIGAL_NAME_COLUMN = 1;
public static final int STORE_NAME_COLUMN = 2;
public static final int SERVICE_COLUMN = 3;
public static final int RUN_COLUMN = 4;
public static final int PASS_COLUMN = 5;
public static final int VERSION_COLUMN = 6;
public static final int VALUE_UNIT_DESCRIPTION_COLUMN = 7;
public static final int RESAMPLING_SCHEME_COLUMN = 8;
public static final int NULL_VALUE_COLUMN = 9;
public static final int MULTIPLIER_COLUMN = 10;
public static final String GET_CURVE_COLUMN_TEXT = "Get Curve";
public static final String ORINIGAL_NAME_COLUMN_TEXT = "Original Name";
public static final String STORE_NAME_COLUMN_TEXT = "Store Name";
public static final String SERVICE_COLUMN_TEXT = "Service";
public static final String RUN_COLUMN_TEXT = "Run";
public static final String PASS_COLUMN_TEXT = "Pass";
public static final String VERSION_COLUMN_TEXT = "Version";
public static final String VALUE_UNIT_DESCRIPTION_COLUMN_TEXT = "Value Unit Description";
public static final String RESAMPLING_SCHEME_COLUMN_TEXT = "Resampling Scheme";
public static final String NULL_VALUE_COLUMN_TEXT = "Null Value";
public static final String MULTIPLIER_COLUMN_TEXT = "Multiplier";
public int getRowCount() {
return tableData.size();
}
public int getColumnCount() {
return 11;
}
public void add(CurveParameters curveParameters) {
tableData.add(new Object[]{curveParameters.CURVE_SELECTED,
curveParameters.ORIGINAL_NAME,
curveParameters.STORE_NAME,
curveParameters.SERVICE,
curveParameters.RUN,
curveParameters.PASS,
curveParameters.VERSION,
curveParameters.VALUE_UNIT_DESCRIPTION,
curveParameters.RESAMPLING_SCHEME,
curveParameters.NULL_VALUE,
curveParameters.MULTIPLIER});
this.fireTableDataChanged();
}
public void setTable(List<CurveParameters> curveParameters) {
tableData.clear();
for (CurveParameters cp : curveParameters) {
tableData.add(new Object[]{cp.CURVE_SELECTED,
cp.ORIGINAL_NAME,
cp.STORE_NAME,
cp.SERVICE,
cp.RUN == -1 ? "" : cp.RUN,
cp.PASS,
cp.VERSION == -1 ? "" : cp.VERSION,
cp.VALUE_UNIT_DESCRIPTION,
cp.RESAMPLING_SCHEME,
cp.NULL_VALUE,
cp.MULTIPLIER});
}
this.fireTableDataChanged();
}
@Override
public String getColumnName(int column)
{
switch( column )
{
case GET_CURVE_COLUMN:
return GET_CURVE_COLUMN_TEXT;
case ORINIGAL_NAME_COLUMN:
return ORINIGAL_NAME_COLUMN_TEXT;
case STORE_NAME_COLUMN:
return STORE_NAME_COLUMN_TEXT;
case SERVICE_COLUMN:
return SERVICE_COLUMN_TEXT;
case RUN_COLUMN:
return RUN_COLUMN_TEXT;
case PASS_COLUMN:
return PASS_COLUMN_TEXT;
case VERSION_COLUMN:
return VERSION_COLUMN_TEXT;
case VALUE_UNIT_DESCRIPTION_COLUMN:
return VALUE_UNIT_DESCRIPTION_COLUMN_TEXT;
case RESAMPLING_SCHEME_COLUMN:
return RESAMPLING_SCHEME_COLUMN_TEXT;
case NULL_VALUE_COLUMN:
return NULL_VALUE_COLUMN_TEXT;
case MULTIPLIER_COLUMN:
return MULTIPLIER_COLUMN_TEXT;
}
return null;
}
@Override
public boolean isCellEditable(int row, int column)
{
switch (column) {
case GET_CURVE_COLUMN:
return true;
case ORINIGAL_NAME_COLUMN:
return false;
case STORE_NAME_COLUMN:
return true;
case SERVICE_COLUMN:
return true;
case RUN_COLUMN:
return true;
case PASS_COLUMN:
return true;
case VERSION_COLUMN:
return true;
case VALUE_UNIT_DESCRIPTION_COLUMN:
return true;
case RESAMPLING_SCHEME_COLUMN:
return true;
case NULL_VALUE_COLUMN:
return true;
case MULTIPLIER_COLUMN:
return true;
}
return false;
}
@Override
public Class getColumnClass(int column) {
switch (column) {
case GET_CURVE_COLUMN:
return Boolean.class;
case ORINIGAL_NAME_COLUMN:
return String.class;
case STORE_NAME_COLUMN:
return String.class;
case SERVICE_COLUMN:
return String.class;
case RUN_COLUMN:
return String.class;
case PASS_COLUMN:
return String.class;
case VERSION_COLUMN:
return String.class;
case VALUE_UNIT_DESCRIPTION_COLUMN:
return String.class;
case RESAMPLING_SCHEME_COLUMN:
return String.class;
case NULL_VALUE_COLUMN:
return String.class;
case MULTIPLIER_COLUMN:
return String.class;
}
return null;
}
@Override
public Object getValueAt(int row, int column) {
return tableData.get(row)[column];
}
}