私が達成しようとしているのは、スライドバーの現在の値を処理できるinitializeメソッドの隣にメソッドを作成することです。そのメソッドが値をタイムラインに戻すようにしたい。私が直面している問題は、スライダを処理し、その変更がvoidメソッドであるが、double型でその値が必要な場合です。javaFXで単純なスライダーを作成する
addlistenerの概念と、Observable、ObservableValue、InvalidationListener、およびChangeListenerの違いは何かを理解するのは苦労しています。
/*DATA FIELD*/
private double cycle;
private Timeline loop;
@FXML
private Slider slider1;
/*METHODS*/
@FXML
public double frequency(){
slider1.valueProperty().addListener(new InvalidationListener(){
@Override
public void invalidated(Observable observable){
cycle = slider1.setValue(slider1.getValue());
}});
return cycle;
public void initialize(URL url, ResourceBundle rb) {
slider1 = new Slider(100, 3000, 500);
loop = new Timeline(new KeyFrame(Duration.millis(cycle), (ActionEvent event) -> {
gb.nextGen(gb.getBoard());
graphic.draw(gb.getBoard());
}