The default cell-renderer is derived from JLabel which is not designed to be a fly-weight. That is why the extrinsic state (foreground and background color, location, font and value) must be set separately before the actual drawing operation is performed. Furthermore, some frequently invoked methods are overridden with empty method bodies for performance reasons.