@Override
	public Component getListCellRendererComponent(JList<? extends CodeCompletion> list,
			CodeCompletion codeCompletion, int index, boolean isSelected, boolean cellHasFocus) {
		JLabel component = (JLabel) super.getListCellRendererComponent(list, codeCompletion, index,
			isSelected, cellHasFocus);

		// if it's selected, make sure it shows up that way
		component.setOpaque(true);
		if (isSelected) {
			component.setBackground(list.getSelectionBackground());
		}
		else {
			component.setBackground(list.getBackground());
		}

		component.setEnabled(list.isEnabled());
		component.setFont(list.getFont());
		component.setComponentOrientation(list.getComponentOrientation());
		Border border = null;
		if (cellHasFocus) {
			if (isSelected) {
				border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
			}
			if (border == null) {
				border = UIManager.getBorder("List.focusCellHighlightBorder");
			}
		}
		else {
			border = new EmptyBorder(1, 1, 1, 1);
		}
		component.setBorder(border);

		return component;
	}
Render either a default list cell, or use the one provided.

If the CodeCompletion we got has a Component to be used, then use that.
Otherwise, we use the DefaultListCellRenderer routine.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/interpreter/CodeCompletionWindow.java