相关疑难解决方法(0)

JavaFX Spinner空文本nullpointerexception

我有一个问题,如果清除编辑器文本并提交然后单击增量或减量按钮,可编辑的JavaFX 8 Spinner会导致未被捕获NullPointerException.这是j8u60 j8u77.幸运的是,递增/递减按钮将陷入压低状态,NPE会继续锁定应用程序.

以下代码为我重现了这个问题:

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;

public class Test extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage aPrimaryStage) throws Exception {
        IntegerSpinnerValueFactory valueFactory = new IntegerSpinnerValueFactory(0, 10);
        Spinner<Integer> spinner = new Spinner<>(valueFactory);
        spinner.setEditable(true);
        aPrimaryStage.setScene(new Scene(spinner));
        aPrimaryStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

运行它,清除文本,按回车键(NullPointerException),单击增量或减量按钮现在也会导致NPE.

任何人都可以确认这是一个JavaFX错误并建议一个解决方法吗?

编辑:异常堆栈跟踪

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at javafx.scene.control.SpinnerValueFactory$IntegerSpinnerValueFactory.lambda$new$215(SpinnerValueFactory.java:475)
    at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361)
    at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
    at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105) …
Run Code Online (Sandbox Code Playgroud)

java javafx nullpointerexception spinner

10
推荐指数
2
解决办法
2019
查看次数

仅在Spinner控件中插入数字

我在Java 8u40中测试了Spinner控件

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class MainApp extends Application
{
    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage)
    {
        final Spinner spinner = new Spinner();

        spinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 10000));
        spinner.setEditable(true);

        GridPane grid = new GridPane();
        grid.setHgap(10);
        grid.setVgap(10);
        grid.setPadding(new Insets(10));

        int row = 0;

        grid.add(new Label("Spinner:"), 0, row);
        grid.add(spinner, 1, row);

        Scene scene = new Scene(grid, 350, 300);

        stage.setTitle("Hello Spinner");
        stage.setScene(scene);
        stage.show();
    } …
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-8

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×2

javafx ×2

javafx-8 ×1

nullpointerexception ×1

spinner ×1