如何在JavaFX中创建一个图像覆盖另一个图像,并在ActionTimer中再次更改它?

如何在JavaFX中创建一个图像覆盖另一个图像,并在ActionTimer中再次更改它?,java,image,javafx,effects,Java,Image,Javafx,Effects,我想把图像“地球”放在图像“太阳”前面上下移动,这样它就能产生3d效果 我已经尝试过使用setBlendMode,但显然这对图像不起作用 这是我的代码: theStage.setTitle(“时间线示例”); 组根=新组(); 场景场景=新场景(根); 第三阶段:设置场景(场景); 画布=新画布(512); root.getChildren().add(画布); GraphicsContext gc=canvas.getGraphicsContext2D(); Image earth=新图像(“

我想把图像“地球”放在图像“太阳”前面上下移动,这样它就能产生3d效果

我已经尝试过使用setBlendMode,但显然这对图像不起作用

这是我的代码:

theStage.setTitle(“时间线示例”);
组根=新组();
场景场景=新场景(根);
第三阶段:设置场景(场景);
画布=新画布(512);
root.getChildren().add(画布);
GraphicsContext gc=canvas.getGraphicsContext2D();
Image earth=新图像(“/experience/img/earth.png”);
Image sun=新图像(“/experience/img/sun.png”);
图像空间=新图像(“/experience/img/space.png”);
final long startNanoTime=System.nanoTime();
新的AnimationTimer()
{
公共无效句柄(长currentnotime)
{
双t=(currentNanoTime-startNanoTime)/100000000.0;
双x=232;
双y=232+128*数学sin(t);
//背景图像清除画布
gc.drawImage(空格,0,0);
gc.drawImage(地球,x,y);
gc.drawImage(sun,196,196);
}
}.start();
stage.show();
}
我怎样才能使地球在每次太阳落下时都在太阳上方呢


我在寻找函数toBack()和toFront(),它们完全按照它们所说的做。他们将ImageView或任何其他节点放在后/前景中。我不再使用帆布了。多亏了我的java老师,我才找到了它们。

不需要操纵混合模式。png图像支持透明度,我希望你的图像在没有显示行星/恒星的每个部分都是透明的。一次又一次地画地球,结果是太阳覆盖了地球。非常确定期望的结果是相反的…链接你正在使用的图像。