Java绑定JTextField - > java.lang.Integer问题
题
我有一个与Integer变量绑定的文本字段,因此当用户在此字段中输入数字时,绑定机制会自动将文本转换为Integer并将此值设置为var。问题是,由于用户在文本字段中键入文本,该绑定机制仅转换值,如果用户在其中键入一些字母,则绑定不会激活,因为文本字段中没有合法值。在这种情况下我需要什么,绑定必须用null值触发更改,所以我的Integer var中有null。
因此,如果用户将此字段留空或者不是数字,则绑定将必须触发空值传播;不要忽视事件......如果没有在文本字段上预先编写事件,我怎么能这样做呢?
java绑定是否能够更改其默认行为?
解决方案
除了改变绑定机制的行为外,您还可以将Formatter放入仅接受数字的TextField中。您需要为此扩展javax.swing.text.DefaultFormatter。然后,您将使用JFormattedTextField而不是普通的JTextField。
结果是您只在文本字段中获得有效输入,而不必使用不正确的值。
其他提示
您需要的是 JFormattedTextField 和 NumberFormat 。
不隶属于 StackOverflow