JavaFX微调器控件向上/向下按钮

JavaFX微调器控件向上/向下按钮,java,javafx,Java,Javafx,如何从微调器控制上下箭头按钮 我想防止当我点击向上/向下按钮,文本为空时出现这种情况好,问题由ManoDestra解决。以下是解决方案- 导入javafx.application.application; 导入javafx.scene.scene; 导入javafx.scene.control.Spinner; 导入javafx.scene.control.SpinnerValueFactory; 导入javafx.scene.control.SpinnerValueFactory.Intege

如何从微调器控制上下箭头按钮


我想防止当我点击向上/向下按钮,文本为空时出现这种情况

好,问题由ManoDestra解决。以下是解决方案-

导入javafx.application.application;
导入javafx.scene.scene;
导入javafx.scene.control.Spinner;
导入javafx.scene.control.SpinnerValueFactory;
导入javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory;
导入javafx.stage.stage;
导入javafx.beans.value.ChangeListener;
导入javafx.beans.value.observeValue;
公共类Spin扩展了应用程序{
纺纱机;
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
public void start(Stage aPrimaryStage)引发异常{
IntegerSpinnerValueFactory值工厂=新的IntegerSpinnerValueFactory(0,10);
微调器=新微调器(valueFactory);
微调器.setEditable(true);
spinner.valueProperty().addListener((observeValue,oldValue,newValue)->handleSpin(observeValue,oldValue,newValue));
设置场景(新场景(微调器));
aPrimaryStage.show();
}
私有void handleSpin(observeValue observeValue、Number oldValue、Number newValue){
试一试{
if(newValue==null){
spinner.getValueFactory().setValue((int)oldValue);
}
}捕获(例外e){
System.out.println(e.getMessage());
}
}
}
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory;
import javafx.stage.Stage;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;

public class Spin extends Application {
    Spinner<Integer> spinner;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage aPrimaryStage) throws Exception {
        IntegerSpinnerValueFactory valueFactory = new IntegerSpinnerValueFactory(0, 10);
        spinner = new Spinner<>(valueFactory);
        spinner.setEditable(true);
        spinner.valueProperty().addListener((observableValue, oldValue, newValue) -> handleSpin(observableValue, oldValue, newValue));

        aPrimaryStage.setScene(new Scene(spinner));
        aPrimaryStage.show();
    }

    private void handleSpin(ObservableValue<?> observableValue, Number oldValue, Number newValue) {
        try {
            if (newValue == null) {
                spinner.getValueFactory().setValue((int)oldValue);
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}