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