@Override
	public Component getTableCellRendererComponent(GTableCellRenderingData data) {

		Object value = data.getValue();
		JTable table = data.getTable();
		int row = data.getRowViewIndex();
		int column = data.getColumnViewIndex();
		boolean isSelected = data.isSelected();
		boolean hasFocus = data.hasFocus();

		Component rendererComponent = null;
		TableCellRenderer cellRenderer = getCellRenderer(table, row, column);
		if (cellRenderer != null) {
			rendererComponent =
				cellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,
					column);
		}
		else {
			// no defined renderer; use me
			rendererComponent =
				super.getTableCellRendererComponent(data);
		}

		return rendererComponent;
	}
What: A cell renderer that will attempt to use any registered cell renderer and will otherwise
      default to the parent rendering implementation.
Why:  Sometimes the need arises to be able to use the default table rendering while adding 
      additional rendering (e.g., to be able to add row coloring).
How:  Create a cell renderer that extends this class and install that into your table.  Then,
      override {@link #getTableCellRendererComponent(JTable, Object, boolean, boolean, int, int)}
      to call this class' implementation.  Finally, add desired decoration.
Ghidra/Features/Base/src/main/java/ghidra/util/table/CompositeGhidraTableCellRenderer.java