Setting a renderer

Top  Previous  Next

 

There are a number of ways to to set a cell renderer.

 

1. Use JTable's method:

 

public void setDefaultRenderer(Class c, TableCellRenderer renderer);

 

Example:

 

TableCellRenderer cellDateRenderer = new DateRenderer();

table.setDefaultRenderer(Date.class, cellDateRenderer);

 

2. Assign a cell renderer to a column.

 

TableColumn column = table.getColumnModel().getColumn(1);

column.setRenderer(new DateRenderer());

 

3. Override the JTable's method:

 

public TableCellRenderer getCellRenderer(int row, int column);

 

to look like:

 

public TableCellRenderer getCellRenderer(int row, int column) {

       if (column == 1) {

               return cellDateRenderer;

       }

       return super.getCellRenderer(row, column);

}

 

4. Override the JTable's method:

 

public void addColumn(TableColumn aColumn);

 

to look like:

 

public void addColumn(TableColumn aColumn) {

       super.addColumn(aColumn);

       if (aColumn.getModelIndex() == 1) {

               aColumn.setCellRenderer(cellDateRenderer);

       }

}