Como saber quantos caracteres foram digitados num JTextField?

7 respostas
P

Pessoal, tenho que verificar se o que foi digitado num JTextField tem 10 caracteres ou mais, se tiver menos tenho que completar com zeros. Como faço ara saber quantos caracteres foram digitados num JTextField?

7 Respostas

C
jTextField.getText().length;

isso vai de retornaar o numero total de carracteres que existe no textFields

P

vlwwww, já ia fazer como eu fiz pra limitar o numero de caracteres no campo. vlwwwww

P

queria tirar outra duvida… como falei mais acima tenho que verificar se o tamanho do que foi digitado no JTextField é menor que 10, se for tenho que completar com zeros. O meu codigo esta assim:

public void actionPerformed(ActionEvent event) {
		if(event.getSource() == (InterfaceGrafica.enviar)){
			remetente2 = InterfaceGrafica.remetente.getText();
			size=InterfaceGrafica.remetente.getText().length();
			if (size<10) {
				int x = 10-size;
				while (x != 0){
					InterfaceGrafica.remetente.setText(remetente2+0);
					x--;
				}
			}
			System.out.println(remetente2);

O sysout no final é só pra ver como fica o remetente no final…

O problema que estou tendo é o seguinte, no evento do clique do botao enviar é verificado se o size do remetente é impresso no console kaio(se eu tiver digitado kaio), se eu clicar de novo no enviar aparece kaio0, de novo kaio00…kaio000… ate completar o limite de caracteres domeu campo que botei como sendo 10… como faço pra ele mostrar logo kaio000000 num clique apenas do botao enviar?

P

Creio que como é outra duvida seja melhor eu criar outro topico neh? Abraço.

C
while(InterfaceGrafica.remetente.getText().length() &lt; 10)
{
    InterfaceGrafica.remetente.setText(InterfaceGrafica.remetente.getText()+0);
}

que tal?

F

para limitar o numero de caracteres no campo, não use eventos e sim estenda um PlainDocument.

veja um exemplo.

public class LimitaNroCaracteres extends PlainDocument 
{
    private int iMaxLength;

    public LimitaNroCaracteres(int maxlen) {
        super();
        iMaxLength = maxlen;
    }

    @Override
    public void insertString(int offset, String str, AttributeSet attr)
                    throws BadLocationException {
        //if (s == null) return;

        if (iMaxLength <= 0)        // aceitara qualquer no. de caracteres
        {
            super.insertString(offset, str.toUpperCase(), attr);
            return;
        }

        int ilen = (getLength() + str.length());
        if (ilen <= iMaxLength)    // se o comprimento final for menor...
            super.insertString(offset, str.toUpperCase(), attr);   // ...aceita str
        }
}


//como usar
JTextField txtField = new JTextField(20);
txtField.setDocument(new LimitaNroCaracteres(10));

t+ e boa sorte.

P

Pois foi, foi isso mesmo que fiz… Obrigado pela resposta cara. :slight_smile:

Criado 2 de fevereiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 7
Participantes 3