我希望jTextField包含12个0,我需要在键入时将这些0更改为数字。
- 一开始是000000000000
- 如果我输入123,则应该是000000000123
我在KeyPressed
事件上执行了此操作,但它无法正常工作。
try {
int i = Integer.parseInt(jTextField1.getText());
jTextField1.setText(String.format("%012d", i));
} catch (Exception e) {
jTextField1.setText(String.format("%012d", 0));
}
}
它会随着我的打字而变化,但很少有问题。
1.在我键入11个数字之前,它会一直更改,在我键入第12个数字后,它会删除所有数字,并再次显示为000000000005(如果我键入的第12个数字是5)
1.当我删除所有它只显示10个0而不是12,但当我再次键入一个数字它显示键入的数字和11个0.
有什么办法吗?
3条答案
按热度按时间dtcbnfnu1#
下面是一个自定义类,它尝试模拟银行机器的数据输入。也就是说,文本从右到左输入:
您可以按如下方式更改默认掩码:
p8ekf7hl2#
这将排除左边的字符并添加新的字符。
o7jaxewo3#
您的整数值可能已达到最大值,请尝试仅使用String。
或者如果你想再短一点,你可以这样做。
它只是根据文本字段的长度,将一个由12个0组成的字符串进行子串化,然后将其添加到末尾。