Если вы стремитесь только к базовым c изменениям, таким как затемнение или освещение ваших значков, вы можете посмотреть на часть Effects javaFx, вы можете прочитать об этом здесь , или же вы можете импортируйте ваши изображения в формате SVG, как предложено в комментариях
Если вы планируете сделать это с помощью эффектов, вы можете добиться эффекта затемнения при наведении, используя эффект ColorAdjust, установив значение яркости на отрицательное значение ( яркость в ColorAdjust находится в диапазоне от -1 до +1, где 0 является значением по умолчанию), как в следующем примере
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.effect.ColorAdjust;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage s) {
ImageView image = new ImageView(new Image("img.png"));
ColorAdjust darker = new ColorAdjust();
darker.setBrightness(-.3);
image.setOnMouseEntered(e-> {
image.setEffect(darker);
});
image.setOnMouseExited(e-> {
image.setEffect(null);
});
s.setScene(new Scene(new StackPane(image)));
s.show();
}
public static void main(String[] args) {
launch(args);
}
}
Изменение цвета изображения может включать в себя настройку оттенка с помощью ColorAdjust путем установки значение оттенка
ColorAdjust hueShift = new ColorAdjust();
hueShift.setHue(-.3);
image.setOnMouseEntered(e-> {
image.setEffect(hueShift);
});
image.setOnMouseExited(e-> {
image.setEffect(null);
});
Вы можете комбинировать эффекты, устанавливая эффекты в качестве входных данных для других эффектов, например, если вы хотите затемнить узел и размыть его одновременно, вы можете установить размытие эффект как вход для затемнения colorAdjust
GaussianBlur blur = new GaussianBlur();
blur.setRadius(10);
ColorAdjust darker = new ColorAdjust();
darker.setBrightness(-.3);
darker.setInput(blur);
image.setOnMouseEntered(e-> {
image.setEffect(darker);
});
image.setOnMouseExited(e-> {
image.setEffect(null);
});