我想有3個對象做不同的事情,所以我想獲得調用者的來源。 我使用的是lambda,我沒有使用關鍵幀,動畫是相同的和循環的,所以我不需要爲不同的關鍵幀指定不同的行爲。javafx8時間軸 - 如何獲得動畫的來源
也許我做錯了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個不同的對象,每一個是嵌套INA clockcontrol類 (換句話說我有clockcontrol1 clockcontrol2和3,其具有在其中一個MyClock myclock的這些各一個)
打印我有那裏的所有時鐘都返回false(總數爲3),而當前寫入的時間是我希望第一個時鐘變爲真的時候...我嘗試了不同的變化,我在這裏發佈的只是最後一個變化,但我對我所有的嘗試都是虛假的。
我在哪裏搞砸了?
感謝:
然後,因爲你需要,你可以舉例說明這些答覆,對於我提出的問題給出了它的結構似乎是一個很好的解決方案。 我想出了一個更好的解決方案,我的具體問題。 儘管不是一般的,但它足夠滿足我的需求。 我將動畫更改爲: animation = new Timeline(new KeyFrame(Duration.millis(1000),ev - > startAnimation())); 而且方法本身是: \t \t \t私人無效startAnimation() \t \t \t {\t \t \t \t \t如果(this.getParent()== clockControl1) \t \t \t \t \t ... } – user2893825
這看起來不太可維護,但確定。 –