使用JavaFX DropShadow移动节点会留下痕迹

使用JavaFX DropShadow移动节点会留下痕迹,java,javafx,javafx-8,dropshadow,Java,Javafx,Javafx 8,Dropshadow,在我用JavaFX开发的一个游戏中,我有带s的牌。牌可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我试过使用,它可以工作,但会模糊标签中的文本 是否有其他方法可以防止DropShadow留下痕迹? 以下是一个MCVE,结果如下: public class DropShadowTest extends Application { @Override public void start(final Stage stage) throws Exception {

在我用JavaFX开发的一个游戏中,我有带s的牌。牌可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我试过使用,它可以工作,但会模糊标签中的文本

是否有其他方法可以防止
DropShadow
留下痕迹?

以下是一个MCVE,结果如下:

public class DropShadowTest extends Application {

    @Override
    public void start(final Stage stage) throws Exception {
        final Label label = new Label("Hello, world!");
        label.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(10), Insets.EMPTY)));
        label.setEffect(new DropShadow(3, 0, 1, Color.BLACK));
        label.setMaxSize(100, 100);
        label.setMinSize(100, 100);

        stage.setScene(new Scene(new StackPane(label), 640, 480));
        stage.show();

        label.setOnMouseClicked(event -> {
            final TranslateTransition anim = new TranslateTransition(Duration.seconds(1), label);
            anim.setToX(Math.random() * 500 - 250);
            anim.setToY(Math.random() * 300 - 150);
            anim.play();
        });
    }

    public static void main(final String[] args) {
        Application.launch(args);
    }

}
结果:


谢谢

尝试使用缓存,例如,在开始设置动画之前,请将缓存提示设置为 完成切换回的动画后,它将重新渲染节点(如swing中的repaint())