4

我想自动隐藏JToolBar并且仅当鼠标靠近/越过JToolBar. 我已经添加了JToolBarin JPanel。中没有鼠标悬停监听器JToolBar。这该怎么做?

4

2 回答 2

4

将 a 添加MouseMotionListener到您的JFrameorJDialog中。

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

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

于 2011-11-17T15:04:45.927 回答
3

JToolBar 中没有鼠标悬停监听器

您将使用MouseListeneris 处理mouseEnteredmouseExited事件。

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

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

于 2011-11-17T15:59:31.623 回答