0

Does anybody have expirience with creating animated menubar in javafx. I need show menu bar when mouse moved on top, and hide when mouse leave this area(25px on top). Currently i have some sollution, but it looks not so pretty like i want, just show/hide without any sliding)))

root.setOnMouseMoved(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            if (event.getY() < 25){
                menuBar.setVisible(true);
                root.setTopAnchor(clipPane, 35.0); 
            } else {
                if (menuBar.isVisible()) {
                    menuBar.setVisible(false);
                }

                if (menuFile.isShowing()) {
                    try {
                        Robot bot = new Robot();
                        bot.mousePress(InputEvent.BUTTON1_MASK);
                        bot.mouseRelease(InputEvent.BUTTON1_MASK);
                    } catch (AWTException ex) {
                    }
                }

                root.setTopAnchor(clipPane, 0.0);
            }
        }
    });

So can somebody help with information how to add sliding effect for show/hide menubar?

Yevhen
  • 791
  • 9
  • 24
  • Try to digest these http://stackoverflow.com/questions/15466832/java-fx-animations-between-different-menus and http://stackoverflow.com/questions/22622034/frosted-glass-effect-in-javafx – Uluk Biy Aug 03 '15 at 08:28

1 Answers1

3

After few hours searching, realised it byself over ParallelTransitions))

root.setOnMouseMoved(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            if ((event.getY() <= 35) && (!fMenuVisible)) {
                TranslateTransition clipPane_Slide = new TranslateTransition(Duration.millis(300), clipPane);
                clipPane_Slide.setFromY(0);
                clipPane_Slide.setToY(35);
                clipPane_Slide.setCycleCount(1);
                clipPane_Slide.setAutoReverse(false);

                TranslateTransition menuBar_Slide = new TranslateTransition(Duration.millis(300), menuBar);
                menuBar_Slide.setFromY(0);
                menuBar_Slide.setToY(35);
                menuBar_Slide.setCycleCount(1);
                menuBar_Slide.setAutoReverse(false);

                ParallelTransition ShowMenu = new ParallelTransition(); 
                ShowMenu.getChildren().addAll(clipPane_Slide, menuBar_Slide);
                ShowMenu.setCycleCount(1);
                ShowMenu.playFromStart();

                fMenuVisible = true;
            } else if ((event.getY() > 35) && (fMenuVisible)) {
                TranslateTransition clipPane_Slide = new TranslateTransition(Duration.millis(300), clipPane);
                clipPane_Slide.setFromY(35);
                clipPane_Slide.setToY(0);
                clipPane_Slide.setCycleCount(1);
                clipPane_Slide.setAutoReverse(false);

                TranslateTransition menuBar_Slide = new TranslateTransition(Duration.millis(300), menuBar);
                menuBar_Slide.setFromY(35);
                menuBar_Slide.setToY(0);
                menuBar_Slide.setCycleCount(1);
                menuBar_Slide.setAutoReverse(false);

                ParallelTransition HideMenu = new ParallelTransition(); 
                HideMenu.getChildren().addAll(clipPane_Slide, menuBar_Slide);
                HideMenu.setCycleCount(1);
                HideMenu.playFromStart();

                fMenuVisible = false;
            }
        }
    });
Yevhen
  • 791
  • 9
  • 24