【问题标题】:How to make an auto-hide the JToolBar?如何使 JToolBar 自动隐藏?
【发布时间】:2011-12-31 10:16:08
【问题描述】:

我想自动隐藏JToolBar,它仅在鼠标靠近/越过JToolBar 时才会出现。我在JPanel 中添加了JToolBarJToolBar 中没有鼠标悬停监听器。如何做到这一点?

【问题讨论】:

  • 能否请您发布SSCCE,也许不需要申请MouseWhatever

标签: java swing jtoolbar


【解决方案1】:

MouseMotionListener 添加到您的JFrameJDialog

addMouseMotionListener(new MouseAdapter() {
    public void mouseMoved(MouseEvent e) {
         toolbar.setVisible(e.getY() < 10);
     }
});

这样,工具栏只有在鼠标位于窗口的前 10 个垂直像素时才会显示。

【讨论】:

    【解决方案2】:

    JToolBar 中没有鼠标悬停监听器

    您将使用MouseListener 来处理mouseEnteredmouseExited 事件。

    但是你会遇到一个问题,因为鼠标事件只会被传递给一个可见的组件。所以一旦隐藏工具栏是不会收到 mouseEntered 事件的。

    所以我不明白你的设计。您是否打算让其他组件向上移动以填充工具栏的空间?或者你会把空间留空?在后一种情况下,您需要将 MouseMotionListener 添加到面板并处理 mouseMoved 事件以查看鼠标位于工具栏应位于的位置。

    【讨论】:

    • +1 because the mouse events will only be passed to a visible component,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2014-03-20
    • 2012-01-12
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多