Java 移除浮动工具条

Java 移除浮动工具条,java,swing,floating,jtoolbar,Java,Swing,Floating,Jtoolbar,我的应用程序中有一个JButton,可以添加/删除JToolBar。固定工具栏时,我可以使用以下方法将其删除: toolBar.getParent().remove(toolbar); // toolBar is an instance of JToolBar 如果在工具栏处于浮动状态时执行此操作,则不会发生任何事情,浮动工具栏将保留在那里。使用从JToolBar获取的BasicToolBarUI对象,我们可以知道它是否处于浮动状态。如果JToolbar是浮动的,我们可以处理它的窗口 publ

我的应用程序中有一个
JButton
,可以添加/删除
JToolBar
。固定工具栏时,我可以使用以下方法将其删除:

toolBar.getParent().remove(toolbar); // toolBar is an instance of JToolBar

如果在工具栏处于浮动状态时执行此操作,则不会发生任何事情,浮动工具栏将保留在那里。

使用从JToolBar获取的BasicToolBarUI对象,我们可以知道它是否处于浮动状态。如果JToolbar是浮动的,我们可以处理它的窗口

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);
}