如何在Javafx中添加刻度

如何在Javafx中添加刻度

我想知道如何在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/

10-12 04:42