有人可以帮我吗...我已经尝试了各种方法(包括此处的帮助),但这不起作用。 我使用 JFormattedTextField 和 MaskFormatter 将数据输入限制为 4(最大)位数。
static JFormattedTextField textPayout;
MaskFormatter f;
try {
f = new MaskFormatter("####");
} catch (ParseException e) {
e.printStackTrace();
return; // actual code not written yet.
}
textPayout = new JFormattedTextField(f);
问题在于它不限制字符或长度(此外,如果输入非数字,文本会开始重叠)。我尝试过各种各样的类似面具的操作。有人可以告诉我我做错了什么吗?
谢谢
最佳答案
我刚刚尝试了这段代码,它工作得很好,但有一个小问题:
class A extends JFrame {
public static void main(String args[]) throws ParseException {
A a = new A();
a.setLayout(new GridLayout());
JFormattedTextField textField =
new JFormattedTextField(new MaskFormatter("####"));
a.add(textField);
a.add(new JButton("qwe"));
a.setSize(300,50);
a.setVisible(true);
}
}
问题是最初的文本字段充满了 4 个空格,所以我不得不删除它们。可能这就是 Gentoo 编译 IcedTea 7.2 的怪异之处。
否则一切工作正常,你可以尝试我的代码吗?如果它不起作用,那么你的 Java 版本是什么?
关于Java - MaskFormatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344321/