Tratamento de excecoes com JTextField

2 respostas
G

Pessoal,

como tratar excecoes de JTextField para capturar somente numeros, sem valores null ou caracteres?

import javax.swing.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.net.*;
import javax.net.*;

public class DeltaWeb extends JApplet {   
      
   public JTextField texto1,texto2,texto3,texto4;
   double a,b,c,resultado_final;   

   
    public void init() {   
	
	JLabel nome1 = new JLabel("Digite o valor a: ");
	JLabel nome2 = new JLabel("Digite o valor b: ");
	JLabel nome3 = new JLabel("Digite o valor c: ");
	JLabel nome4 = new JLabel("Resultado: ");
         texto1 = new JTextField(10);
        JLabel imagem = new JLabel(new ImageIcon("bsd2.jpg"));
	Container container = getContentPane();
	JButton botao1 = new JButton("OK");
	JButton botao2 = new JButton("Limpar");
	JPanel painel = new JPanel();
	texto2 = new JTextField(10);
	texto3 = new JTextField(10);
	texto4 = new JTextField(10);
	painel.add(nome1);
	painel.add(texto1);
	painel.add(nome2);
	painel.add(texto2);
	painel.add(nome3);
	painel.add(texto3);
	painel.add(botao1);
	painel.add(botao2);
	painel.add(nome4);
	painel.add(texto4);
        painel.add(imagem);
	container.add(painel,BorderLayout.CENTER);	       
        
   
   botao1.addActionListener(new ActionListener(){
      
      public void actionPerformed(ActionEvent event) 
	 {
	   a=Double.parseDouble(texto1.getText());
	   b=Double.parseDouble(texto2.getText());
	   c=Double.parseDouble(texto3.getText());
	   resultado_final = b*b - 4*a*c;
	   texto4.setText(String.valueOf(resultado_final));
	    
	 }
      
   });
			     

	
    botao2.addActionListener( new ActionListener() {
       
       
       public void actionPerformed(ActionEvent event) 
	 {
	    texto1.setText("");
	    texto2.setText("");
	    texto3.setText("");
	    texto4.setText("");
	    
	    
	 }
       
				 
    });
		
			      
     }
   
    
     public static void main(String args[] ) 
     {   
         DeltaWeb delta = new DeltaWeb();
	
     }
  
}

   grato,

Marcelo Araujo

2 Respostas

Shelson

acho q eu tenho alguma coisa nesse sentido numa apostila em casa…
Se ateh amanhã ninguem responder, eu te mando amanha ! 8)

Hempx

:arrow: Acho que tem varios modos de se fazer isso... um jeito seria usar a interface Document. ae voce implementaria como voce quissese seu JTextField... tem um tutorial aqui na guj msm mostrando como fazer isso para limitar o numero de caracteres de um JTextField(Controlando um JTextField ). Voce pode adaptar ele para escutar eventos do teclado e tratar...

:arrow: ou se nao... um jeito mais facil seria mudar seus JTextField por JFormattedTextField e usar uma Mascara.

pequeno exemplo:

MaskFormatter format = null;
		
		try {
			 format = new MaskFormatter( "######" );
		}catch( ParseException pex ){
			pex.printStackTrace();
		}
JFormattedTextField field = new JFormattedTextField ( format );

:arrow: # significa que aceita apenas numero.

Acho que no docs tem tudo explicador melhor.... da uma olhada em
:arrow: javax.swing.text.MaskFormatter
:arrow: javax.swing.JFormattedTextField

no docs [url]http://java.sun.com/j2se/1.4.2/docs/api/index.html[/url]

Criado 2 de dezembro de 2003
Ultima resposta 2 de dez. de 2003
Respostas 2
Participantes 3