3

わかりましたので、Books の LinkedHashSet から入力した JTable があります。

    public static void LibToArray(){
    rowData = new Object[Book.bookList.size()][5];
    int i = 0;
    Iterator it = Book.bookList.iterator();
    while(it.hasNext()){
        Book book1 = (Book)it.next();
        rowData[i][0] = (Integer)book1.getId();
        rowData[i][1] =  book1.getTitle();
        rowData[i][2] =  book1.getAuthor();
        rowData[i][3] = (Boolean)book1.getIsRead();
        rowData[i][4] =  book1.getDateStamp();
        i++;
        }
    }

私の問題は、4番目のコロムにブール値のステータスをチェックボックスとして表示させ、ステータスをLinkedHashSetに保存してテーブルを更新した後に変更できるようにすることです。

初心者で申し訳ありませんが、アドバイスいただけると助かります。

4

1 に答える 1

8

テーブル モデルでは、特定の列とgetColumnClass()引き換えに。または拡張機能Boolean.classの例:AbstractTableModelDefaultTableModel

@Override
public Class<?> getColumnClass(int columnIndex) {
    if (columnIndex == 3)
        return Boolean.class;
    return super.getColumnClass(columnIndex);
}

また、セルを編集可能にするには、オーバーライドisCellEditable()します。次に例を示します。

@Override
public boolean isCellEditable(int row, int col) {
    return (col == 3); 
}

テーブル モデルの詳細については、テーブルの使用方法のチュートリアルをご覧ください。同じチュートリアルに、チェックボックス列を持つテーブルの例があります。

于 2012-11-09T06:22:05.270 に答える