我想知道如何在javafx中添加刻度。滴答声是指更新场景的重复线程。我尝试了一个普通线程,但是我不断收到不是应用程序线程的错误。我希望从initialize方法开始,这里是MainContol类的高度简化版本:
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.Initializable;
public class MainControl implements Initializable{
public void initialize(URL arg0, ResourceBundle arg1) {
// Tick goes here
}
}
最佳答案
我认为您正在寻找的是时间轴。时间轴会创建一个线程,该线程重复设置的次数或无限次重复,直到您终止它为止。
这是您的处理方式:
MainControl:
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.animation.TimelineBuilder;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.Initializable;
import javafx.util.Duration;
@SuppressWarnings("deprecation")
public class MainControl implements Initializable{
public void initialize(URL arg0, ResourceBundle arg1) {
Timeline tick = TimelineBuilder.create()//creates a new Timeline
.keyFrames(
new KeyFrame(
new Duration(10),//This is how often it updates in milliseconds
new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
//You put what you want to update here
}
}
)
)
.cycleCount(Timeline.INDEFINITE)
.build();
tick.play();//Starts the timeline
}
}
我希望这有帮助
关于java - 如何在Javafx中添加刻度线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25713336/