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

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

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

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

【问题讨论】:

    标签: java swing floating 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多