0

Griffon 1.2.0 と JavaFX を使用しており、テキスト フィールドを数値にバインドしたいと考えています。モデルのプロパティを Float に定義するだけでできると思っていたのですが、コンバーターを定義してもそれが気に入らないようです。私は Validator プラグインを調べましたが、それは( JavaFX ではなく) Swing でしか機能しないようです 67ページは、私が望む機能の種類を正確に示しています)。

それまでの間、ここで提案されているように、ビューの noparent ブロックにプロパティ変更リスナーを追加しましたJavaFX で数値 TextField を作成する推奨方法は何ですか? :

amount2.textProperty().addListener({ ObservableValue<? extends String> observable, String oldValue, String newValue ->
    try {
        Integer.parseInt(newValue);
    } catch (Exception e) {
        observable.setValue(oldValue);
    }
} as ChangeListener<String>)

これにより、ユーザーは数字のみを入力できるようになりますが、より良いオプションはありますか? Validation プラグインの機能に匹敵するものは JavaFX の分野で見つかりませんでした。JavaFX をあきらめて Swing に戻るべきでしょうか?

4

1 に答える 1

0

この機能は、GroovyFXの@FXBindableおよびbind()ノードによってすでに提供されていると思いました。

 class SampleModel {
     @FxBindable float number
 }

 // View
 textField(text:bind(target: model, 'number', converter: { v -> /* insert converter code here */))

GroovyFXのbind()がSwingBuilderのbind()のコピーであることを考慮してください。

于 2013-02-24T10:04:04.693 に答える