@Override
	public Component getCustomEditor() {

		// always create a new one. Holding on to closed dialogs causes issues if the theme changes
		List<Color> recent = new ArrayList<>();
		List<Color> history = new ArrayList<>();
		String activeTab = null;
		if (colorChooser != null) {
			history.addAll(colorChooser.getColorHistory());
			recent.addAll(colorChooser.getRecentColors());
			activeTab = colorChooser.getActiveTab();
			colorChooser.getSelectionModel().removeChangeListener(listener);
		}
		colorChooser = new GhidraColorChooser();
		colorChooser.setColorHistory(history);
		colorChooser.setRecentColors(recent);
		colorChooser.setActiveTab(activeTab);
		colorChooser.getSelectionModel().addChangeListener(listener);
		return colorChooser;
	}
Property Editor for Colors. Uses a {@link GhidraColorChooser} as its custom component
Ghidra/Framework/Docking/src/main/java/docking/options/editor/ColorPropertyEditor.java