JavaFX8 Spinner字段未显示值

时间:2015-11-26 15:15:05

标签: java javafx javafx-8

我无法弄清楚为什么我的Spinner没有显示任何价值。而且我也无法编辑价值。 我将editable设置为true,以fxml和编程方式设置(确定)。就像你在代码中看到的那样,我用两种方式设置了两个微调器,一个是方法getSpinner,另一个是构造函数。记录器说的价值:
第一个是1(默认= 0,增加1,所以它是1.它有效),
秒是2(默认值= 1,增加1,所以它是2.它也有效。) 问题是我无法在程序中看到它,也无法编辑它。 这是Spinners的屏幕,(就像我之前说过的,Logger显示值分别为1和2)但我看不到值,当我输入例如0,然后单击向上或向下,没有任何反应。
我错过了什么吗?或者我以错误的方式初始化Spinners?

My spinners

public class ControllerPRGTT implements Initializable{

    private final static Logger LOGGER = Logger.getLogger(ControllerPRGTT.class.getName());

    public Spinner spinnerPrograms; 
    public Spinner<Integer> spinnerTimetables;
    //IntelliJ IDEA shows that both Spinners are connected to fxml

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        LOGGER.info("Initializable metohd of PRG and TT controller start.");
        spinnerPrograms = getSpinner(0,6,0,1);
        spinnerTimetables = new Spinner<>(0,6,1,1);
        spinnerPrograms.setEditable(true);
        spinnerTimetables.setEditable(true);

        spinnerPrograms.increment();
        spinnerTimetables.increment();

        LOGGER.info("1 value: "+ spinnerPrograms.getValue());
        LOGGER.info("2 value: "+ spinnerTimetables.getValue());
    }

    private Spinner getSpinner(int min, int max, int def, int step) {
        SpinnerValueFactory.IntegerSpinnerValueFactory integerSpinnerValueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(min, max, def, step);
        Spinner<Integer> spinner = new Spinner<>(integerSpinnerValueFactory);
        spinner.setEditable(true);
        return spinner;
    }
}

以下是我的fxml文件的一部分:

   <HBox prefHeight="100.0" prefWidth="200.0">
        <VBox.margin>
            <Insets left="10.0" top="10.0"/>
        </VBox.margin>
        <Label prefHeight="17.0" prefWidth="76.0" text="Programs">
            <HBox.margin>
                <Insets right="10.0" top="5.0"/>
            </HBox.margin>
        </Label>
        <Spinner fx:id="spinnerPrograms" editable="true"/>
    </HBox>
    <HBox prefHeight="100.0" prefWidth="200.0">
        <VBox.margin>
            <Insets left="10.0" top="10.0"/>
        </VBox.margin>
        <Label prefHeight="17.0" prefWidth="76.0" text="Timetables">
            <HBox.margin>
                <Insets right="10.0" top="5.0"/>
            </HBox.margin>
        </Label>
        <Spinner fx:id="spinnerTimetables" editable="true"/>
    </HBox>

0 个答案:

没有答案