JTable renderers serve performance; RTL rendering should not have noticeable overhead if your model getValueAt()does not impose an implementation on them. Instead, let it TableModelget its caching data only if necessary. This example extends AbstractTableModel gets all its construction data. If the receipt is delayed, use the instance SwingWorkeras shown in the API or in this example .