#java #intellij-idea #javafx #javafx-11
#java #intellij-идея #javafx #javafx-11
Вопрос:
Привет, я бы хотел добавить для управления «Spinner» целые числа от 1 до 24. Я пишу свою функцию и добавляю в файл fxml, но отображаю исключение (JavaFX 11).
Обычно, когда я создаю счетчик отображения окна со значением по умолчанию «7», я также могу изменить значение int с 1 на 24, но при каждом нажатии отображается это исключение. Подведение итогов,
addChangeVIEW.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Spinner?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane prefHeight="305.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.controller.addChangeController">
<children>
<Button fx:id="addChangeButton" graphicTextGap="8.0" layoutX="413.0" layoutY="110.0" mnemonicParsing="false" prefHeight="85.0" prefWidth="128.0" text="ADD CHANGE" textAlignment="CENTER" textFill="#e50a0a" textOverrun="LEADING_WORD_ELLIPSIS" />
<DatePicker fx:id="dateChangePicker" layoutX="23.0" layoutY="138.0" />
<Label fx:id="descDatePicker" layoutX="70.0" layoutY="100.0" prefHeight="18.0" prefWidth="89.0" text="Date Change">
<font>
<Font size="14.0" />
</font>
</Label>
<Label fx:id="fromHourLabel" layoutX="215.0" layoutY="99.0" text="From Hour" />
<Label fx:id="toHourLabel" layoutX="311.0" layoutY="99.0" text="To Hour" />
<Label fx:id="statusLabel" layoutX="83.0" layoutY="216.0" prefHeight="33.0" prefWidth="258.0" text="WAIT FOR ADD CHANGE" textFill="#14f004">
<font>
<Font name="Arial" size="18.0" />
</font>
</Label>
<Spinner fx:id="fromHourSpinner" layoutX="214.0" layoutY="137.0" onMouseClicked="#spinnersAction" prefHeight="26.0" prefWidth="58.0" />
<Spinner fx:id="toHourSpinner" accessibleText="1" layoutX="303.0" layoutY="137.0" onMouseClicked="#spinnersAction" prefHeight="26.0" prefWidth="58.0" />
</children>
</AnchorPane>
addChangeController
package com.controller;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import java.net.URL;
import java.util.ResourceBundle;
public class addChangeController implements Initializable {
@FXML
private Spinner<Integer> fromHourSpinner;
@FXML
private Spinner<Integer> toHourSpinner;
SpinnerValueFactory<Integer> spinner = new SpinnerValueFactory.IntegerSpinnerValueFactory(1,24,7);
@FXML
public void spinnersAction(ActionEvent event){
//fromHourSpinner.setValueFactory(spinner);
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
fromHourSpinner.setValueFactory(spinner);
}
}
Init
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: argument type mismatch
Process finished with exit code 0
Комментарии:
1. Я решил проблему 😉
2. Если вы решили свою проблему, подумайте о том, чтобы написать решение в ответе на свой собственный вопрос.
3. вы должны поделиться своим решением с сообществом, не используйте переполнение стека только для получения решений, вы также должны помочь сообществу.
Ответ №1:
Поскольку у меня такая же проблема, вот решение, которое я нашел
Просто нужно немного изменить код примерно так..
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
SpinnerValueFactory<Integer> spinner =new SpinnerValueFactory.IntegerSpinnerValueFactory(1,24,7);
fromHourSpinner.setValueFactory(spinner);
toHourSpinner.setValueFactory(spinner);
}