移除浮动的 JToolbar

Posted

技术标签:

【中文标题】移除浮动的 JToolbar【英文标题】:Remove floating JToolbar 【发布时间】:2021-05-22 19:56:34 【问题描述】:

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

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

如果我在工具栏浮动时执行此操作,则不会发生任何事情,浮动工具栏仍然存在。

【问题讨论】:

【参考方案1】:

使用从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);

【讨论】:

以上是关于移除浮动的 JToolbar的主要内容,如果未能解决你的问题,请参考以下文章

清除行内快元素之间的间距

从点击事件中移除一个函数

C#winform控件动态添加和动态移除

管理不在 DOM 子树中的子组件

知识点

dwm的安装使用