【发布时间】:2015-01-05 12:20:12
【问题描述】:
我想让 3 个对象做不同的事情,所以我想获取调用者的来源。 我为此使用 lambda,并且我没有使用关键帧,动画是相同且循环的,因此我不需要为不同的关键帧指定不同的行为。
也许我在 lambda 上做错了什么?
这是我的代码:
class MyClock extends ClockPane //clockpane extends pane
{
Timeline animation;
int id;
EventHandler<ActionEvent> eventHandler = e ->
{//startAnimationById();
System.out.println(e.getSource()==clockControl1.myclock.animation);
};
public MyClock(int c,int id)
{
super(c);
this.id=id;
animation = new Timeline(new KeyFrame(Duration.millis(1000),eventHandler));
animation.setCycleCount(Timeline.INDEFINITE);
animation.play();
}
startanimationbyid 方法使用我定义的 id 来避免这个问题,但它确实会困扰我。
我有 3 个这种类型的不同对象,每个对象都嵌套在一个时钟控制类中 (换句话说,我有 clockcontrol1 clockcontrol2 和 3 其中每个都有一个 MyClock myclock)
对于我拥有的所有时钟(总共 3 个),我在那里的打印返回 false,而正如目前所写的那样,我希望第一个时钟为 true...我尝试了不同的变体,我在这里发布的只是最后一个变体,但我所有的尝试都错了。
我在哪里搞砸了?
【问题讨论】:
标签: animation lambda javafx-8 timeline