2

javafxの初心者です。すぐに使用できる検証機能を備えたシンプルなフォームを作成したい。ライブラリとして JideFX を選択しました。リピート ショーケースを試してみました (これは私の好みではありません) - http://www.jidesoft.com/jidefx/JideFX_Validation_Developer_Guide.pdf。結果としてのみ StackOverflowError があります。バリデータが呼び出されます。検証がOKであれば例外はありません。

javafx-8、Java 8、Eclipse Luna、JideFX 0.9.1 を使用 (0.9.1-b128 も試しました)。何か提案はありますか?コードは以下です。

SimpleValidator.java

public class SimpleValidator implements Validator {

    @Override
    public ValidationEvent call(ValidationObject param) {
        if (param.getNewValue() != null
                && !param.getNewValue().toString().isEmpty()) {
            return ValidationEvent.OK;
        } else {
            return new ValidationEvent(ValidationEvent.VALIDATION_ERROR, 1,
                    "Error");
        }
    }
}

LoginController.java

public class LoginController {

    private static final Logger LOGGER = LoggerFactory
            .getLogger(LoginController.class);

    @FXML
    private TextField idField;
    //...
    @FXML
    private void initialize() {
        ValidationUtils.install(idField, new SimpleValidator());
    }

    public LoginController() {
        super();
    }
//...
}
4

3 に答える 3

2

FXForm2を試すと、クールなフォームをすばやく簡単に作成できます。また、検証機能があります。サンプルの確認はこちら

于 2014-10-12T20:17:49.087 に答える
0

少し調べてみましたが、どうやらこれはメッセージを渡すときに発生するようですValidationEvent

return new ValidationEvent(ValidationEvent.VALIDATION_OK); //no error
return new ValidationEvent(ValidationEvent.VALIDATION_OK, 9999); //no error
return new ValidationEvent(ValidationEvent.VALIDATION_OK, 9999, ValidationEvent.FailBehavior.IGNORE); //no error
return new ValidationEvent(ValidationEvent.VALIDATION_OK, 9999, "teste"); //error
return new ValidationEvent(ValidationEvent.VALIDATION_OK, 9999, "teste", "teste"); //error

return new ValidationEvent(ValidationEvent.VALIDATION_OK, 9999, ValidationEvent.FailBehavior.IGNORE, "teste");

これは、TooltipEx の原因である stackoverflow #22に関連している可能性があります

したがって、検証メッセージなしで実行できる場合は...

詳細がわかったら、これを更新します

于 2015-05-05T20:55:44.367 に答える
0

同じバグに遭遇しました。JideFX は死んでいるようです。

代わりに ControlsFX 検証を使用してください。

于 2015-10-28T12:37:56.843 に答える