0

大丈夫。全体を含むカスタムJTableモデルを実装しました

@Override
public Class<?> getColumnClass(final int column) {

そしてその中に私が持っている

if (column == 0)
    return Boolean.class;

実行してJTable、チェック済みの代わりにに移動すると、 JCheckboxtrue と表示されます。クリックすると、クリックJCheckBoxを解除して true または false と表示されるまで に変わります。

私は何を間違っているのですか????

4

3 に答える 3

1

この(欠陥のある)例を調べているときに、同様の問題に遭遇しました。メソッド呼び出しは、によって返される結果に関係なく、非合金のをgetDefaultRenderer(Boolean.class)返します。効果を確認するには、チェックボックスの列を新しい場所にドラッグし、チェックボックスのヘッダーをクリックします。ビューの新しい列 0 は、 と の間で交互に表示されます。JTable.BooleanEditorgetColumnClass()java.lang.ObjectDefaultTableModeltruefalse

于 2011-08-25T01:21:00.107 に答える
0
table = new JTable(model) {

private static final long serialVersionUID = 1L;

/*@Override
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}*/
@Override
public Class getColumnClass(int column) {
    switch (column) {
        case 0:
            return String.class;
        case 1:
            return String.class;
        case 2:
            return Integer.class;
        case 3:
            return Double.class;
        default:
            return Boolean.class;
    }
}

MKorbel の回答を使用して、この問題を解決しました。

于 2011-12-05T10:23:14.940 に答える