private int addComponentsToTabbedPane(List<ComponentPlaceholder> activeComponents,
			JTabbedPane tabbedPane) {
		int count = activeComponents.size();
		int activeIndex = 0;
		for (int i = 0; i < count; i++) {
			ComponentPlaceholder placeholder = activeComponents.get(i);
			DockableComponent c = placeholder.getComponent();
			c.setBorder(BorderFactory.createEmptyBorder());
			String title = placeholder.getTitle();
			String tabText = placeholder.getTabText();

			final DockableComponent component = placeholder.getComponent();
			tabbedPane.add(component, title);

			DockingTabRenderer tabRenderer =
				createTabRenderer(tabbedPane, placeholder, title, tabText, component);

			c.installDragDropTarget(tabbedPane);

			tabbedPane.setTabComponentAt(i, tabRenderer);
			Icon icon = placeholder.getIcon();
			if (icon != null) {
				tabRenderer.setIcon(icon);
			}

			if (placeholder == top) {
				activeIndex = i;
			}
		}
		return activeIndex;
	}
Removes the component from this node (and the manager), but possibly keeps an empty object as
a placeholder.
@param placeholder the placeholder object to be removed.
@param keepEmptyPlaceholder flag indicating to keep a placeholder object.
Ghidra/Framework/Docking/src/main/java/docking/ComponentNode.java