如何自动隐藏JToolBar?

时间:2011-11-17 14:46:47

标签: java swing jtoolbar

我想自动隐藏JToolBar,只有当鼠标靠近JToolBar时才会显示。我在JToolBar中添加了JPanelJToolBar中没有鼠标悬停监听器。怎么做?

2 个答案:

答案 0 :(得分:4)

MouseMotionListener添加到JFrameJDialog

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

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

答案 1 :(得分:3)

  

JToolBar中没有鼠标悬停监听器

您可以使用MouseListener处理mouseEnteredmouseExited事件。

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

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