Her iki saniyede bir etiketi güncellemeye çalışıyorum, normal bir Zamanlayıcı kullanmayı denedim, ancak başka bir iş parçacığında etiketinde değişiklik yapamadığından, bu Zamanlayıcı:Her belirli saniyede bir void yöntemini tetiklemek için TimeLine kullanın JavaFX
public void setTimer(Timer timer, int seconds, String userName, String content, VBox tabContent,ArrayList<Integer> countTweetsArray, Label statusLabel) {
TabContent tabContentObj = new TabContent();
timer.schedule(new TimerTask() {
@Override
public void run() {
setTweet(userName, content);
//tabContentObj.createStatusScreen(tabContent, countTweetsArray, remainingTweets);
System.out.println(content+" after "+seconds);
System.out.println("countTweetsArray: "+countTweetsArray.get(0));
statusLabel.setText(countTweetsArray.get(0).toString());
countTweetsArray.set(0, (countTweetsArray.get(0)+1));
tabContentObj.timersMap.put(userName, timer);
}
}, (seconds*1000));
}
Ben zaman çizgisini kullanarak bir etikete periyodik değişiklikler yapabilirsiniz okumak ama bu sadece ilgili herhangi animasyon olmadan bir boşluk yöntemi tetiklemek için bir yolu var mı, keyvalues ve ana kareleri nasıl çalıştığını anlayamıyorum?
ile bir kullanılan yapabilirsiniz Cevabınızdaki kodun snippet'i de lambda da kullandı, sorun şu ki zamanlayıcıyı bir düğme ile durdurmak istiyorum ve zaman çizelgesi nesnesini bildirmeye çalıştım ve sonra yapıcıya iletmem gerekirse final lambda kullanırsam, timeli nasıl referans göstereceğine dair bir fikrin var mı ne onu durdurmak için? –
Sadece bir kez bir değer atarsanız, bu "etkili son" ve bir lambda kullanılabilir. Zaten birden çok kez atayacağın bir sebep göremiyorum. Gerçekten ihtiyacınız varsa, her zaman bir örnek değişken yapabilirsiniz. –
Güncellemeye gönderdiğiniz kodu constructor yönteminin içine koyar mıyım? –