如何自动隐藏JToolBar



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

在您的JFrameJDialog中添加MouseMotionListener

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

这样,工具栏将只显示当鼠标在窗口的前10个垂直像素

JToolBar中没有鼠标悬停监听器

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

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

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

相关内容

  • 没有找到相关文章

最新更新