2011-11-17 58 views
4

我想要自動隱藏JToolBar,它只有在鼠標靠近/超過JToolBar時纔會顯示。我在JPanel中添加了JToolBarJToolBar中沒有鼠標懸停的偵聽器。這個怎麼做?如何自動隱藏JToolBar?

+1

可以請您發佈SSCCE也許沒有必要應用'MouseWhatever' – mKorbel

回答

4

MouseMotionListener加入您的JFrameJDialog

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

這樣,只有當鼠標位於窗口的前10個垂直像素中時,纔會顯示工具欄。

3

有JToolBar的中沒有

鼠標懸停聽者

你會使用MouseListener是處理mouseEnteredmouseExited事件。

但是您將遇到問題,因爲鼠標事件只會傳遞給可見組件。所以一旦你隱藏工具欄就不會收到mouseEntered事件。

所以我不明白你的設計。您是否打算讓其他組件向上移動以通過工具欄填充空間?或者你會把空間留空?在後一種情況下,您需要將MouseMotionListener添加到面板並處理mouseMoved事件,以查看鼠標位於工具欄應該位於的位置。

+1

+1',因爲鼠標事件只會傳遞給可見組件, – mKorbel