[RESOLVIDO] Limitador jtextfield nao funciona

2 respostas
E

Pessoal seguinte estou usando o netbeans e não consigo fazer funcionar o delimitador de tamanho em jtextfield segui o tutorial [url]http://www.guj.com.br/articles/29[/url], e mesmo assim rodando no netbeans ele não limita os dígitos alguém poderia me ajudar !!!

Por enquanto estou usando este aqui que funciona, mas não sei se é correto utilizar assim segue abaixo código:

private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {                                        

           cont=(byte)jTextField1.getText().length();
          
            //Teclas de A..Z, backSpace, Teclas fechas e as teclas de fechas numlock e Space


           if( (evt.getKeyCode()>=65 && evt.getKeyCode()<=90)  || evt.getKeyCode()==KeyEvent.VK_BACK_SPACE
            || (evt.getKeyCode()>=37 && evt.getKeyCode()<=40) || (evt.getKeyCode()>=224 && evt.getKeyCode()<=227)
            || evt.getKeyCode()==32){

               if(cont>MAXCARACTER){
                   if(evt.getKeyCode()>=37 && evt.getKeyCode()<=40 || (evt.getKeyCode()>=224 && evt.getKeyCode()<=227)){
                      
                   }else jTextField1.setText(jTextField1.getText().substring(0,MAXCARACTER));

               }

            //Teclas que precionadas não apresentam nada no jtextfield
            }else if(evt.getKeyCode()==16 || evt.getKeyCode()==20 || evt.getKeyCode()==10 ||
            (evt.getKeyCode()>=112 && evt.getKeyCode()<=123) || evt.getKeyCode()==27 || evt.getKeyCode()==17
            || evt.getKeyCode()==524 || evt.getKeyCode()==18 || evt.getKeyCode()==144
            || evt.getKeyCode()==65406 || evt.getKeyCode()==525 || evt.getKeyCode()==0
            || evt.getKeyCode()==154 || evt.getKeyCode()==19 || evt.getKeyCode()==145
            || evt.getKeyCode()==155 || evt.getKeyCode()==36 || evt.getKeyCode()==35
            || evt.getKeyCode()==33 || evt.getKeyCode()==34 ){

                evt.consume();
            //Para todas as demais teclas
            }else{           
                   if(!jTextField1.getText().isEmpty()){

                        evt.consume();
                        cont = (byte)jTextField1.getCaretPosition();
                        part1 = jTextField1.getText().substring(0, cont-1);
                        part2=jTextField1.getText().substring(cont, jTextField1.getText().length());
                        jTextField1.setText(part1+part2);
                        jTextField1.setCaretPosition(cont-1);
                }

                   
        }

    }

2 Respostas

Mephy

abre o evento de OnKeyPress do TextField, e coloca:

if (nometextfield.getText().length() > numeroDesejado){ nometextfield.setText(nometextfield.substring(0, numeroDesejado + 1); }

isso corta o último caractere inserido

E
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {



        if(evt.getKeyChar()>=KeyEvent.VK_0 && evt.getKeyChar()<=KeyEvent.VK_9) evt.consume();
        
        if(jTextField1.getText().length()>=MAXCARACTER){
            evt.consume();
            jTextField1.setText(jTextField1.getText().substring(0, MAXCARACTER));
            joption.Tipo_Information(this,"Máximo de caracteres perimitos neste campo !", "Atenção");
            
        }
        
        

    }

Resolvido com o código, assim funciona perfeitamente

Criado 10 de abril de 2011
Ultima resposta 10 de abr. de 2011
Respostas 2
Participantes 2