Java-MaskFormatter

Java-MaskFormatter,java,swing,jformattedtextfield,Java,Swing,Jformattedtextfield,有人能帮我一下吗。。。我试过各种方法(包括这里的帮助),但都不起作用。 我使用带有MaskFormatter的JFormattedTextField将数据输入限制为4(最大)位 问题在于它既不限制字符也不限制长度(而且,如果输入了非数字,文本本身也开始重叠)。我尝试过各种各样的面具式手术。谁能告诉我我做错了什么 谢谢最简单的方法是使用数字格式化程序将其添加到,或者另一种方法是使用add,因为我刚刚尝试了这段代码,它只解决了一个小问题: class A extends JFrame { p

有人能帮我一下吗。。。我试过各种方法(包括这里的帮助),但都不起作用。 我使用带有MaskFormatter的JFormattedTextField将数据输入限制为4(最大)位

问题在于它既不限制字符也不限制长度(而且,如果输入了非数字,文本本身也开始重叠)。我尝试过各种各样的面具式手术。谁能告诉我我做错了什么


谢谢

最简单的方法是使用
数字格式化程序将其添加到
,或者另一种方法是使用add,因为我刚刚尝试了这段代码,它只解决了一个小问题:

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版本是什么?

我做了你所做的更改(把“######”放在MaskFormatter中,它就起作用了!我简直不敢相信我能在网上找到任何东西,只要把格式化文本放在那里就行了。非常感谢
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);
    }
}