JFormattedTextField功能很强大,如果给他一个MaskFormatter,他就能够限制用户输入的字符串的长度,若给他一个NumberFormatter,他就能将内容进行格式化。可是,如何将这2种功能综合起来呢?我想限制用户输入一个不多于6位的整数,该如何做到呢????

解决方案 »

  1.   

    其实你也可以不用JFormattedTextField,直接用JTextField就可以了,然后为你的JTextField添加事件处理函数
    JTextField jtf=new JTextField(6);
    jtf.addKeyListener(new KeyAdapter(){
                public void keyTyped(KeyEvent ke){
                    String content=jtf.getText();
                   if(!Character.isDigit(ke.getKeyChar())||content.length()>=6){
                       ke.consume();
                       System.out.println(ke.getKeyLocation());
                   }
                }
            });
      

  2.   

    这个我知道
    但是我还想要他按照数字格式来显示啊,就是把123456显示为123'456,这个功能很好啊,况且数字格式很多呢,百分比,小数点位数等等,JFormattedTextField已经把这些都做好了,我可不想自己写!