如何在JavaFX的Spinner中定义没有上限

时间:2015-04-11 00:23:52

标签: javafx

我正在尝试制作数字Spinner。我不想定义最大值。以下代码给出了一个错误,因为Spinner(int min, int max, int initalValue)不接受空值。

Spinner<Integer> spinner = new Spinner<Integer>(1, null, 1);

在Swing中,我可以为此传递空值,我将如何在JavaFX中执行相同的操作?

1 个答案:

答案 0 :(得分:1)

长话短说,你不能!

<强>原因

  1. 微调器未设计为采用 null 值。微调器将原始数据类型作为参数,并在内部调用SpinnerValueFactory,其构造函数再次接受原始数据类型。 您不能将null传递给基本类型。
  2. 即使您定义了Spinner spinner = new Spinner(),也必须使用setValueFactory()才能生效。
  3. <强>解决方案

    您最好的选择是使用INTEGER.MAX_VALUE,以防您使用SpinnerValueFactory.IntegerSpinnerValueFactory,恕我直言就足够了;)

    Spinner<Integer> spinner = new Spinner<Integer>(1,Integer.MAX_VALUE, 1);
    

    如果您需要更高的值,请使用DoubleSpinnerValueFactory