From eed532670f4c4acbf08d7ec29f38cf9c93d34457 Mon Sep 17 00:00:00 2001 From: Peter <pt033@hdm-stuttgart.de> Date: Mon, 11 Dec 2023 13:00:11 +0100 Subject: [PATCH] fix(ui): fix button getting smaller when moving mouse too quickly #14 --- .../Controller/ButtonTransition.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java new file mode 100644 index 00000000..2af6c6d6 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/ButtonTransition.java @@ -0,0 +1,29 @@ +package de.hdm_stuttgart.battlearena.Controller; + +import javafx.animation.ScaleTransition; +import javafx.scene.control.Button; +import javafx.scene.control.skin.ButtonSkin; +import javafx.util.Duration; + +public class ButtonTransition extends ButtonSkin { + public ButtonTransition(Button button) { + super(button); +// set transition for mouse hovering over button + final ScaleTransition fadeIn = new ScaleTransition(Duration.millis(150)); + fadeIn.setNode(button); + fadeIn.setToX(1.1); + fadeIn.setToY(1.1); + button.setOnMouseEntered(e -> fadeIn.playFromStart()); + +// set transition for mouse exiting buttonButtonTransitionScale + final ScaleTransition fadeOut = new ScaleTransition(Duration.millis(150)); + fadeOut.setNode(button); + fadeOut.setToX(1.0); + fadeOut.setToY(1.0); + button.setOnMouseExited(e -> fadeOut.playFromStart()); + + button.setScaleX(1.0); + button.setScaleY(1.0); + } +} + -- GitLab