textField

3 respostas
R

Como faço ao digitar no campo textfield para aceitar
somentes letras e espaço.

obrigado

3 Respostas

C

Procure por regex.

B

Ola,

Na própria api do JTextField tem um exemplo manipulando o método insertString do Document, é por ali que vc faz isto de forma facil, no exemplo ele manipula de forma a só ter letras em maiusculo…

Dá uma olhada lá, qq duvida posta ae.

P

Exatamante como faluo BrunoCarlo.
Isto funciona, extendendo a classe PlainDocument, sobregravando insertString:

/*

  • MyTextField.java
  • Created on 24 de Junho de 2006, 00:50

*/

package testjava;

import javax.swing.JTextField;

import javax.swing.text.AttributeSet;

import javax.swing.text.BadLocationException;

import javax.swing.text.Document;

import javax.swing.text.PlainDocument;

------------------------------ INÍCIO DO CÓDIGO ----------------------

/**
*

  • @author Patrizio
    */
    public class MyTextField extends JTextField {

    /**

    • Construtor principal.
      */
      public MyTextField() {
      this("");
      }

    /**

    • Construtor 2.
      */
      public MyTextField(String text) {
      super(text);
      }

    /**

    • Override <code>JTextField</code>.
      */
      protected Document createDefaultModel() {
      return new LimitDocument();
      }

    /**

    • Inner class que representa um <code>PlainDocument</code> personalizado.
      */
      class LimitDocument extends PlainDocument {

      /**

      • Override <code>PlainDocument</code>.
        
        */
        
        public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
        
        for (int i = 0; i < str.length(); i++) {
        
        if (!Character.isLetter(str.charAt(i)) && !Character.isSpaceChar(str.charAt(i))) {
        
        return;
        
        }
        
        }
        

        super.insertString(offs, str, a);
        }

    }

}

------------------------------ FIM DO CÓDIGO ------------------------

Criado 22 de junho de 2006
Ultima resposta 24 de jun. de 2006
Respostas 3
Participantes 4