Using the BasicToolBarUI object obtained from the JToolBar, we can know if it floating. If the JToolbar is floating, we can dispose its window.
public boolean isFloating(JToolBar toolbar) {
ToolBarUI ui = toolbar.getUI();
return ui instanceof BasicToolBarUI && ( (BasicToolBarUI) ui).isFloating();
}
public void removeFromParent(JToolBar toolbar) {
if (isFloating(toolbar)) {
// Dock the JToolBar before removing
BasicToolBarUI basicToolbarUI = (BasicToolBarUI) toolbar.getUI();
basicToolbarUI.setFloating(false, null);
}
// Not floating, docked, remove from parent component
toolbar.getParent().remove(toolbar);
}