Using TableCellRenderer and getColumnClass together

后端 未结 2 1980
忘了有多久
忘了有多久 2021-01-24 20:49

when i add getcolumn class to my abstracttablemodel, i couldnt use my custom TableCellRenderer to set background color. (i use this for sorting,alignment numeric columns)

<
2条回答
  •  迷失自我
    2021-01-24 21:05

    Your getColumnClass() method will return: String.class, Double.class and Integer.class for columns 0, 1, 2.

    JTable will provide the default renderer for the Double and Integer columns.

    If you want to use your custom renderer for all your columns then you need to do:

    MyCustomTableCellRenderer renderer = new MyCustomTableCellRenderer();
    table.setDefaultRenderer(Object.class, renderer); // or you could use "String.class"
    table.setDefaultRenderer(Double.class, renderer);
    table.setDefaultRenderer(Integer.class, renderer);
    

    When you use "Object.class" it means use the Object renderer as a last resort renderer, only if no other custom renderer for the specific class has been added to the table.

提交回复
热议问题