Как сделать авто-скрытие JToolBar? - PullRequest
4 голосов
/ 17 ноября 2011

Я бы хотел сделать автоматическое скрытие JToolBar, и оно появляется только тогда, когда мышь приближается к JToolBar. Я добавил JToolBar в JPanel. В JToolBar нет слушателя при наведении курсора мыши. Как это сделать?

Ответы [ 2 ]

4 голосов
/ 17 ноября 2011

Добавьте MouseMotionListener к вашему JFrame или JDialog.

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

. Таким образом, панель инструментов будет отображаться, только если мышь находится в верхних 10 вертикальных пикселяхокно.

3 голосов
/ 17 ноября 2011

В JToolBar нет слушателя при наведении мыши

Вы бы использовали MouseListener для обработки событий mouseEntered и mouseExited.

Но у вас будет проблема, потому что события мыши будут переданы только видимому компоненту. Поэтому, как только вы скроете панель инструментов, она не получит событие mouseEntered.

Так что я не понимаю ваш дизайн. Планируете ли вы сдвинуть другие компоненты вверх, чтобы заполнить пространство на панели инструментов? Или вы просто оставите пространство пустым? В последнем случае вам потребуется добавить MouseMotionListener на панель и обработать событие mouseMoved, чтобы увидеть, что мышь находится в том месте, где должна быть панель инструментов.

...