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