本当に必要なのは、チェックボックスがオンになっているときに関数が呼び出されることだけです。
チェックボックスをオンにすると、モデル内の値が変更されますが、これはおそらく希望どおりではありません。そもそもチェックボックスのチェックを避けたいと思います。
セルが編集可能になるのを防ぐ方法は、JTableのisCellEditable(...)メソッドをオーバーライドすることです。このメソッドをオーバーライドすることにより、セルを編集可能にするかどうかを動的に決定できます。
JTable table = new JTable( ... )
{
public boolean isCellEditable(int row, int column)
{
int modelColumn = convertColumnIndexToModel( column );
if (modelColumn == yourBooleanColumn)
return isTheBooleanForThisRowEditable(row);
else
return super.isCellEditable(row, column);
}
};
そして、より洗練されたアプローチは、ユーザーがセルをクリックしようとする前でもチェックボックスが「無効」に見えるようにカスタムレンダラーを作成することです。レンダラーでtrashgodが提供するリンクを参照してください。