この問題に関してこの Web サイトで非常に多くの質問を読みましたが、まだ機能していない理由がわかりません。
問題:
を のJTable
中に表示するようにしましたJScrollPane
。はJTable
次のように構成されます。
table = new JTable(new DataTableModel());
ご覧のとおり、私は というカスタムを使用していAbstractDataModel
ますDataTableModel
。これを表示すると、チェックボックスが表示されますが、選択できません。以下に示すように、それらは編集可能です。クラスの関連コードは次のDataTableModel
とおりです (チェック ボックスの列はインデックス 0 の最初の列であり、この列の配列内のデータは「null」であることに注意してください)。いくつかのための
public class DataTableModel extends AbstractTableModel
{
private String[][] data;
private String[] header =
{ "", "KB Name", "fpGUID" };
public DataTableModel() throws SQLException
{
// ========= CONNECTS TO DB AND PULLS RESULTS ==========
// GETS RESULTS SET CALLED "rs"
// populate data array
int counter = 0;
while (rs.next())
{
//data[counter][0] = "sfsdfsdfs ";
data[counter][1] = (String) rs.getObject(2);
data[counter][2] = (String) rs.getObject(4);
counter++;
}
// =====================================================
}
@Override
public String getValueAt(int rowIndex, int columnIndex)
{
return data[rowIndex][columnIndex];
}
public boolean isCellEditable(int row, int col)
{
return col == 0;
}
public Class getColumnClass(int column)
{
if (column == 0)
{
return Boolean.class;
} else
{
return String.class;
}
}
それで、私のgetColumnClass()
方法は問題ないようですが、何が問題なのですか?テーブルのデータを保存する「データ」に何かあるのでしょうか。データ配列は次のとおりです。