我正在使用Griffon 1.2.0和JavaFX,并且希望将文本字段绑定到一个数字。我认为我可以简单地通过将模型属性定义为Float来完成它,但即使我定义了一个转换器,它似乎也不是那样。我查看了Validator插件,但似乎只适用于Swing(不是JavaFX) - 这很遗憾,因为此演示文稿使其看起来非常好:http://www.slideshare.net/ecspike/introduction-to-griffon(第67页显示了我想要的功能类型)。使用Griffon和JavaFX将文本字段绑定到一个数字
在此期间,我只是在我看来的noparent块添加属性更改侦听的建议在这里What is the recommended way to make a numeric TextField in JavaFX?:
amount2.textProperty().addListener({ ObservableValue<? extends String> observable, String oldValue, String newValue ->
try {
Integer.parseInt(newValue);
} catch (Exception e) {
observable.setValue(oldValue);
}
} as ChangeListener<String>)
这将确保用户只能输入数字,但有更好的选择?我在JavaFX领域还没有发现任何与Validation插件功能相媲美的东西 - 我应该放弃JavaFX并回到Swing吗?
我尝试这样 //模型 @FXBindable飘浮试验 //视图 文本字段(文本:绑定(目标:模型, '测试'),转换器:model.convertFloat) 但它与 2013猛烈模具-02-25 11:33:46,614 [AWT-AppKit]错误org.codehaus.griffon.runtime.builder.UberBuilder - 建立moneytracker时发生错误[email protected] groovy.lang.MissingPropertyException:No such property:target for class:groovyx.javafx.binding.BindingHolder # #Java运行时环境检测到致命错误: # #SIGSEGV(0xb)at pc = 0x000000010d9a5425,pid = 6373,tid = 1799 # #JRE版本:7.0_07-b10 – prule 2013-02-25 00:36:34
那么恐怕GroovyFX 0.3.1中有一个bug http://groovyfx.org/ – aalmiray 2013-02-25 11:09:36