Ошибка присвоение значению в FXML

Начал изучать JavaFX и столкнулся с такой проблемой: у меня есть класс TextBox унаследованный от TextField

package sample;

import javafx.fxml.FXML;
import javafx.scene.control.TextField;

public class TextBox extends TextField {

    private int maxLength = 255;
    private boolean onlyDigits;

    public TextBox(){
        super();
    }

    @Override
    public void replaceText(int start, int end, String text) {
        String oldText = getText();
        super.replaceText(start, end, text);

        if (!verify()){
            setText(oldText);
        }
    }

    @Override
    public void replaceSelection(String text) {
        String oldText = getText();
        super.replaceSelection(text);

        if (!verify()){
            setText(oldText);
        }
    }

    private boolean verify() {
        String text = getText();

        if (text =="")
            return true;

        if (text.length() > maxLength) {
            return false;
        }
        if (onlyDigits && !Converter.StringToInt(text).isSuccess()){
            return false;
        }

        return true;
    }

    public int getMaxLength() {
        return maxLength;
    }

    public void setMaxLength(int maxLength) {
        if (maxLength >= 0)
            this.maxLength = maxLength;
    }

    public void setOnlyDigits(boolean onlyDigits) {
        this.onlyDigits = onlyDigits;
    }

    public boolean isOnlyDigits() {
        return onlyDigits;
    }
}

При использовании следующего FXML у меня возникает ошибка:

<TextBox
                GridPane.columnIndex="0" GridPane.rowIndex="1"
                maxLength="2"
                onlyDigits="true"
                fx:id="tbNumberVertex" />

Caused by: javafx.fxml.LoadException: Error resolving onlyDigits='true', either the event handler is not in the Namespace or there is an error in the script.


Ответы (0 шт):