Sobre JTextfield

6 respostas
D

Olá…
Tenho um frame com componente JTextfield. Esse componente soh pode receber inteiros, como posso fazer a validação?

Tentei achar uma função como no Delphi toint() mais não consegui.

Alguem pode me ajudar?

obrigado

Douglas

6 Respostas

J

Oi

Douglas, um meio, não muito elegante é fazer com um KeyListener, mas vai dar um pouco de trbalaho…

Tu pode fazer um conversão, e depois veririfcar se está tudo certo… Por exemplo, converter o conteúdo do Field pra inteiro:

int fieldInt = Integer.parseInt(seuFileld.getText().toString());

Aí depois é só ver se o filedInt tem alguma coisa como valor.

T+

D

Deu Certo em partes :smiley:

Seguinte, eu gostaria que o campo tivesse apenas valores entre 0 e 99999
então estou tentando o seguinte, mais não consegui fazer dar certo, vc teria alguma sugestão para me dar?

try

int fieldInt = Integer.parseInt(seuFileld.getText().toString());

catch {

return false;

}
if((fieldInt > 0) && (fieldInt < 999999)) {

return true;

else

return false;

}

obrigado…
Douglas
P.S. - Desculpe pela mensagem duplicada antes, foi um erro no meu browser.

D

Blza Consegui tudo certinho…
Só mais uma duvida rápida…
Como faço para limitar o tamanho do Jtextfield? Tipo quero que em determinado campo só pode digitar 4 caracteres?

Uso o Jbuilder e ainda não achei a propriedade correta…

abs
Douglas

J

Oi

Douglas, eu ja procurei isso tb, mas nao existe um método só pra isso… NO GUJ tem um tutorial que faz isso, da uma garimpada lá www.guj.com.br

T+

A

pra isso vc precisa colocar uma máscara, use o JFormattedTextField

veja esse exemplo:

import javax.swing.text.MaskFormatter.*; 
import java.text.ParseException; 

public class Formata extends javax.swing.JFrame {

    public Formata () {
        initComponents ();
        pack ();
    }
    
    private void initComponents() {
    	Painel = new javax.swing.JPanel();
        
        getContentPane().setLayout(null);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        }
        );    
        
      try { 
        mask = new javax.swing.text.MaskFormatter("####"); 
         mask.setPlaceholderCharacter('_'); 
         FormatField = new javax.swing.JFormattedTextField(mask);
         FormatField.setBounds(40, 40, 50, 20);
         getContentPane().add(FormatField);
       } 
      catch (ParseException e) { 
         e.printStackTrace(); 
         FormatField = new javax.swing.JFormattedTextField();
         FormatField.setBounds(40, 40, 200, 20);
         getContentPane().add(FormatField);
      }  
                
    }
    
    public void exitForm(java.awt.event.WindowEvent evt){
    	System.exit(0);
    }
    
    public static void main (String args[]) {
        Formata f = new Formata();
        f.setSize (120,120);
        f.setTitle("  TEstando Máscara");
        f.show ();
    }
	
    public javax.swing.JFormattedTextField FormatField;
    public javax.swing.JPanel Painel;
    public javax.swing.text.MaskFormatter mask;
     
}

até mais

N

Dá uma olhada em java.swing.JFormattedTextField e em java.swing.text.MaskFormatter.

T+

Criado 6 de abril de 2004
Ultima resposta 6 de abr. de 2004
Respostas 6
Participantes 4