我想自动隐藏JToolBar
,它只在鼠标靠近/超过JToolBar
时出现。我在JPanel
中添加了JToolBar
。在JToolBar
中没有鼠标悬停监听器。如何做到这一点?
在您的JFrame
或JDialog
中添加MouseMotionListener
。
addMouseMotionListener(new MouseAdapter() {
public void mouseMoved(MouseEvent e) {
toolbar.setVisible(e.getY() < 10);
}
});
这样,工具栏将只显示当鼠标在窗口的前10个垂直像素
JToolBar中没有鼠标悬停监听器
您将使用MouseListener
来处理mouseEntered
和mouseExited
事件。
但是你会遇到一个问题,因为鼠标事件只会传递给一个可见的组件。因此,一旦隐藏了工具栏,它将不会收到mouseEntered事件。
所以我不明白你的设计。您是否计划让其他组件向上移动以填充工具栏的空白?还是你就这样空着?在后一种情况下,您需要将MouseMotionListener添加到面板并处理mouseMoved事件,以查看鼠标是否位于工具栏应该位于的位置。