2013-03-09 42 views
0

我是新的非javafx和我有一点问题与textField。NumberField javafx

有了这个字段,我只用getText方法得到一个字符串。

我不知道如何创建一个numberField来获取一个整数,而不是一个字符串。

是否存在这样的字段或者我必须自己创建它?

在这种情况下如何做到这一点?

由于

回答

0

IntegerField存在于JavaFX的,但它是一个内部类(例如,它是用于颜色选择器的整数输入)。它是私人包装,不能从外部使用。

但是,您可以查看其代码并自行实施。 JavaFX是部分开源的。你可以下载源代码并看看这个。

com.sun.javafx.scene.control.skin.IntegerField 

控件的代码非常简单,皮肤类具有公共访问权限。所以,这会给你带来很大的麻烦。

顺便说一句,您可以在jfx jira中提交一个关于其发布的功能(或请求)。可能的话,它会在稍后的某个时候公开,在这种情况下。

0

Java 8u40引入了TextFormatter。现在你可以这样做:

TextField numberField = new TextField(); 
numberField.setAlignment(Pos.CENTER_RIGHT); 
numberField.setTextFormatter(new TextFormatter<>(new NumberStringConverter()));