Jtextfield so com numeros

como ver se um jtextfield tem apenas numeros? e se ele não tiver numeros e sim letras mostrar um jOptionPane com a mensagem “Digite apenas números!”

tente isso:

  
Pattern pattern = Pattern.compile("[0-9]");  
	      Matcher matcher = pattern.matcher(txtTeste.getText());  
	      if (matcher.find()) {  
	    	
	         JOptionPane.showMessageDialog(null, "digite apenas numeros");  
	      } else {  
	    	  
	    	 
	      }  

mas o melhor msm seria usar um JFormatedTextField e colcoar para que o campo so aceite numeros, assim se ele digitar letras nao vai aparecer no textfield.

Vlw pela ajuda! :smiley:

Melhor ainda é só deixar o usuário entrar números, e ignorar caso ele digite letras. Para isso:

  1. Copie essas classes para seu projeto: http://www.guj.com.br/java/107425-como-fazer-para-o-campo-textfield-receber-so-numeros#579803
  2. Faça:
seuTextField.setDocument(new IntegerDocument(5));

Onde 5 é o número máximo de dígitos que você quer para o número. :wink:

tb pode usar um try

catch…

acredito que o erro usado nesta hora é o arithmetic exception , não?

conhece o try catch?

aliás dei uma procurada aqui, é o

} catch(NumberFormatException e) {

vou postar um código bacana, de uma equacao de 1 grau, com uma especie de gráfico.

no proximo post

tente tudo isto, senão… lanca o erro…

tb dá certo.

segue o código que tem esta excecao e é bem interessante.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package equacao1grau;

import descobriroxis.ClasseBase;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
//import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 *
 * @author raghy
 */
public class Equacao1Grau extends ClasseBase implements ActionListener , ItemListener {



    boolean negativo1, negativo2, negativo3;
    JButton b1, b2;
    JTextField jT1 = new JTextField();
    JTextField jT2 = new JTextField();
    JTextField jTresultado = new JTextField();
    JLabel jTvalor = new JLabel();
    JLabel jTvalor1 = new JLabel();
    JLabel jTvalor2 = new JLabel();
    JLabel jTvalor3 = new JLabel();
    JLabel jTvalor4 = new JLabel();
    JLabel jTvalor5 = new JLabel();
    JLabel jTvalor6 = new JLabel();
    JLabel jTvalor7 = new JLabel();
    JLabel jTvalor8 = new JLabel();
    JLabel jTvalor9 = new JLabel();
    JLabel jTvalor10 = new JLabel();
      JLabel jTvalor11 = new JLabel();
        JLabel jTvalor12 = new JLabel();
          JLabel jTvalor13 = new JLabel();
    int j1 = 0;
    int j2 = 0;
    int jresultado = 0;
    float equacao = 0;
    //int isolarOx=0;
    float x, y;
    int posicaoX;
    int posicaoY;
    int coordenadaYdeX = 0;
    int coordenadaYdeX2 = 0;
    String Valor_jLabel = "";
    JCheckBox cb1, cb2, cb3;
JLabel mais = new JLabel();
 JLabel igual = new JLabel();
  JLabel menosDox = new JLabel();


    public Equacao1Grau() {
        //painel e titulo doframe
        setTitle("equacao de 1 grau");
        setLocationRelativeTo(null);
        Font F = new Font("Sans Serif", Font.BOLD, 16);
        Font F1 = new Font("Sans Serif", Font.ITALIC, 14);
        Font F2 = new Font("Sans Serif", Font.ITALIC, 20);
        //botao 1 ou calcula...
        b1 = new JButton();
        b1.setText("Calcula");
        b1.setSize(100, 25);
        b1.setLocation(50, 300);
        b1.setBackground(Color.orange);
        b1.setForeground(Color.blue);
        b1.setFont(new Font("Sans Serif", Font.BOLD, 14));
        b1.setBorder(BorderFactory.createBevelBorder(1, Color.white, Color.black));
        b1.setEnabled(true);
        b1.addActionListener(this);
        b2 = new JButton();
        b2.setText("Novo Calculo");
        b2.setSize(100, 25);
        b2.setLocation(50, 360);
        b2.setBackground(Color.orange);
        b2.setForeground(Color.blue);
        b2.setFont(new Font("Sans Serif", Font.BOLD, 14));
        b2.setBorder(BorderFactory.createBevelBorder(1, Color.white, Color.black));
        b2.setEnabled(true);
        b2.addActionListener(this);
        //label1
        JLabel L1 = new JLabel();
        L1.setText("equacao de 1 grau");
        L1.setSize(200, 35);
        L1.setFont(F);
        L1.setLocation(45, 5);
        L1.setForeground(Color.blue);
        //label2
        JLabel L2 = new JLabel();
        L2.setText("formula geral: ax+by=c");
        L2.setSize(200, 35);
        L2.setLocation(45, 25);
        L2.setForeground(Color.blue);
        //label2
        JLabel L3 = new JLabel();
        L3.setText("insira os numeros desejados: ");
        L3.setSize(200, 35);
        //L3.setFont(F);
        L3.setLocation(45, 45);
        L3.setForeground(Color.blue);
        //jT1
        jT1.setFont(F2);
        jT1.setText("");
        jT1.setLocation(40, 85);
        jT1.setSize(35, 35);
        //+
       
        mais.setText("x +");
        mais.setSize(200, 35);
        mais.setFont(F);
        mais.setLocation(78, 85);
        mais.setForeground(Color.blue);
        //+
       
        igual.setText("y =");
        igual.setSize(200, 35);
        igual.setFont(F);
        igual.setLocation(158, 85);
        igual.setForeground(Color.blue);
        //jT2
        jT2.setFont(F2);
        jT2.setText("");
        jT2.setLocation(120, 85);
        jT2.setSize(35, 35);
        //jTresultado
        jTresultado.setFont(F2);
        jTresultado.setText("");
        jTresultado.setLocation(210, 85);
        jTresultado.setSize(35, 35);
        jTvalor.setSize(250, 35);
        jTvalor.setLocation(45, 135);
        jTvalor.setForeground(Color.blue);
        jTvalor1.setSize(250, 35);
        jTvalor1.setLocation(45, 150);
        jTvalor1.setForeground(Color.blue);
        jTvalor2.setSize(250, 35);
        jTvalor2.setLocation(45, 165);
        jTvalor2.setForeground(Color.blue);
        jTvalor3.setSize(250, 35);
        jTvalor3.setLocation(45, 180);
        jTvalor3.setForeground(Color.blue);
        jTvalor4.setSize(250, 35);
        jTvalor4.setLocation(45, 195);
        jTvalor4.setForeground(Color.blue);
        jTvalor5.setSize(250, 35);
        jTvalor5.setLocation(45, 210);
        jTvalor5.setForeground(Color.blue);
        jTvalor6.setSize(250, 35);
        jTvalor6.setLocation(45, 225);
        jTvalor6.setForeground(Color.blue);
        jTvalor7.setSize(250, 35);
        jTvalor7.setLocation(45, 240);
        jTvalor7.setForeground(Color.blue);
        jTvalor8.setSize(250, 35);
        jTvalor8.setLocation(45, 255);
        jTvalor8.setForeground(Color.blue);
        jTvalor9.setSize(250, 35);
        jTvalor9.setLocation(45, 270);
        jTvalor9.setForeground(Color.blue);
        jTvalor10.setSize(250, 35);
        jTvalor10.setLocation(45, 285);
        jTvalor10.setForeground(Color.blue);


          jTvalor11.setSize(250, 35);
        jTvalor11.setLocation(45, 300);
        jTvalor11.setForeground(Color.blue);
          jTvalor12.setSize(250, 35);
        jTvalor12.setLocation(45, 315);
        jTvalor12.setForeground(Color.blue);
          jTvalor13.setSize(250, 35);
        jTvalor13.setLocation(45, 330);
        jTvalor13.setForeground(Color.blue);



         //valores negativos

        cb1 = new JCheckBox("negativo", false);
        cb1.setLocation(36, 120);
        cb1.setSize(74, 20);
        cb1.setBackground(new Color(255, 255, 100));

        cb2 = new JCheckBox("negativo", false);
        cb2.setLocation(116, 120);
        cb2.setSize(73, 20);
        cb2.setBackground(new Color(255, 255, 100));

        cb3 = new JCheckBox("negativo", false);
        cb3.setLocation(205, 120);
        cb3.setSize(74, 20);
        cb3.setBackground(new Color(255, 255, 100));

        cb1.addItemListener(this);
        cb2.addItemListener(this);
        cb3.addItemListener(this);






        Painel p = new Painel();
        p.setBounds(490, 50, 270, 270);
        p.setBorder(BorderFactory.createLineBorder(Color.black, 2));
        getContentPane().setLayout(null);
        getContentPane().add(p);
        getContentPane().add(L1);
        getContentPane().add(L2);
        getContentPane().add(L3);
        getContentPane().add(mais);
        getContentPane().add(igual);
        getContentPane().add(jT1);
        getContentPane().add(jT2);
        getContentPane().add(jTresultado);
        getContentPane().add(jTvalor);
        getContentPane().add(jTvalor1);
        getContentPane().add(jTvalor2);
        getContentPane().add(jTvalor3);
        getContentPane().add(jTvalor4);
        getContentPane().add(jTvalor5);
        getContentPane().add(jTvalor6);
        getContentPane().add(jTvalor7);
        getContentPane().add(jTvalor8);
        getContentPane().add(jTvalor9);
        
        getContentPane().add(jTvalor10);
        getContentPane().add(jTvalor11);
        getContentPane().add(jTvalor12);
        getContentPane().add(jTvalor13);

        getContentPane().add(b2);
        getContentPane().add(cb1);
        getContentPane().add(cb2);
        getContentPane().add(cb3);

    }

    class Painel extends JPanel {

        @Override
        public void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;
            Font F1 = new Font("Sans Serif", Font.BOLD, 60);
            g2.setColor(Color.white);
            g2.fillRect(10, 10, 250, 250);
            //reta y...
            g2.setColor(Color.red);
            g2.drawLine(135, 240, 135, 25);
            //reta x...
            g2.setColor(Color.blue);
            g2.drawLine(25, 135, 240, 135);
            //riscos 0 a 10 de x...
            g2.setColor(Color.black);
            g2.drawLine(135, 135, 135, 145);
            g2.drawLine(145, 135, 145, 145);
            g2.drawLine(155, 135, 155, 145);
            g2.drawLine(165, 135, 165, 145);
            g2.drawLine(175, 135, 175, 145);
            g2.drawLine(185, 135, 185, 145);
            g2.drawLine(195, 135, 195, 145);
            g2.drawLine(205, 135, 205, 145);
            g2.drawLine(215, 135, 215, 145);
            g2.drawLine(225, 135, 225, 145);
            g2.drawLine(235, 135, 235, 145);
            // 1 a 10 -x
            g2.drawLine(125, 135, 125, 145);
            g2.drawLine(115, 135, 115, 145);
            g2.drawLine(105, 135, 105, 145);
            g2.drawLine(95, 135, 95, 145);
            g2.drawLine(85, 135, 85, 145);
            g2.drawLine(75, 135, 75, 145);
            g2.drawLine(65, 135, 65, 145);
            g2.drawLine(55, 135, 55, 145);
            g2.drawLine(45, 135, 45, 145);
            g2.drawLine(35, 135, 35, 145);
            // eixo y... marcacoes...
            g2.drawLine(135, 135, 145, 135);
            g2.drawLine(135, 125, 145, 125);
            g2.drawLine(135, 115, 145, 115);
            g2.drawLine(135, 105, 145, 105);
            g2.drawLine(135, 95, 145, 95);
            g2.drawLine(135, 85, 145, 85);
            g2.drawLine(135, 75, 145, 75);
            g2.drawLine(135, 65, 145, 65);
            g2.drawLine(135, 55, 145, 55);
            g2.drawLine(135, 45, 145, 45);
            g2.drawLine(135, 35, 145, 35);
            //eixo y para baixo...  no caso aumenta a contagem...
            g2.drawLine(135, 145, 145, 145);
            g2.drawLine(135, 155, 145, 155);
            g2.drawLine(135, 165, 145, 165);
            g2.drawLine(135, 175, 145, 175);
            g2.drawLine(135, 185, 145, 185);
            g2.drawLine(135, 195, 145, 195);
            g2.drawLine(135, 205, 145, 205);
            g2.drawLine(135, 215, 145, 215);
            g2.drawLine(135, 225, 145, 225);
            g2.drawLine(135, 235, 145, 235);
           // g2.drawLine(135, 245, 145, 245);
            //traçar a reta da equacao...  e alguns pontos...
            for (float x = 0; x < 10; x = x + 1) {
                y = (jresultado -(j1*x)) / j2;
                int x2 = (int) x;
                int y2 = (int) y;
                posicaoX = 135 + (x2 * 10);
                posicaoY = 135 + (y2 * (-10));
               // g.fillOval(posicaoX, posicaoY, 4, 4);

                 Ellipse2D vertice=new Ellipse2D.Float(     135 + (x * 10)  ,     135 + (y  * (-10))   , 4, 4)  ;
                 g2.fill(vertice);
       
                //conjunção dos pontos...
                Line2D linha = new Line2D.Float(135 , 135 + (y * (-10))    ,  135 + (x * 10)    , 135 + (y * (-10))  );
                g2.draw(linha);

                Line2D linha2 = new Line2D.Double(   135 + (x * 10)    , 135 + (y * (-10)) ,  135 + (x * 10)   , 135);
                g2.draw(linha2);

            }//for...
            calcula();
        }//paint...
    }//fecha a classe painel...
    //acao dos botoes
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == b2) {
            jT1.setEnabled(true);
            jT2.setEnabled(true);
            jTresultado.setEnabled(true);
            jT1.setText("");
            jT2.setText("");
            jTresultado.setText("");
            repaint();
        }
    }

    public void calcula() {        //se vazio ou 1, a vale 1...
      try {
//nao aceita zero em jt1 e jt2...
  if (jT1.getText().equals("0") ) {
      jT1.setText(""); }
   if (jT2.getText().equals("0") ) {
      jT2.setText(""); }
  //se um ou vazio é um, senao é o numero digitado, se passar na exceção.
            if (jT1.getText().equals("1") || jT1.getText().equals("")) {
                j1 = 1;
            } else {                j1 = Integer.parseInt(jT1.getText());       }
            //se vazio ou 1, b vale 1...
            if (jT2.getText().equals("1") || jT2.getText().equals("")) {
                j2 = 1;
            } else {
                j2 = Integer.parseInt(jT2.getText());
            }
            if (jTresultado.getText().equals("0") || jTresultado.getText().equals("")) {
                jresultado = 0;
            } else {
                jresultado = Integer.parseInt(jTresultado.getText());
            }




            if (negativo1 == false) {
                jTvalor11.setText("a tem valor positivo = " + j1);
            } else {
                j1 = j1 * (-1);
                jTvalor11.setText("a tem valor negativo = " + j1);
            }

            if (negativo2 == false) {
                jTvalor12.setText("b tem valor positivo = " + j2);
                mais.setText("x +");

            } else {
                j2 = j2 * (-1);
                jTvalor12.setText("b tem valor negativo = " + j2);  mais.setText("x  -");
            }


 if (jresultado==0) { jTvalor13.setText("c tem valor zero :" + jresultado);igual.setText("y = ");} else
        {

            if (negativo3 == false) {
     jTvalor13.setText("c tem valor positivo = " + jresultado);
igual.setText("y = "); }
            else { jresultado = jresultado * (-1);
            jTvalor13.setText("c tem valor negativo = " + jresultado);  igual.setText("y = -");
            }
  


          }//verifica se é zero , senao entra no if, do negativo 3...
       





            for (x = 0; x < 10; x = x + 1) {
                y = (jresultado -(j1*x)) / j2;
               //exibir os resultado do x e do y...  junto com o gráfico... .. segue abaixo
                if (x == 0) {
                    jTvalor.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 1) {
                    jTvalor1.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 2) {
                    jTvalor2.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 3) {
                    jTvalor3.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 4) {
                    jTvalor4.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }

                if (x == 5) {
                    jTvalor5.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 6) {
                    jTvalor6.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 7) {
                    jTvalor7.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 8) {
                    jTvalor8.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 9) {
                    jTvalor9.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                }
                if (x == 10) {
                    jTvalor10.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);
                } }
        } catch(NumberFormatException e) {
            jT1.setText("");
               jT2.setText("");
                  jTresultado.setText("");
     } finally {
       repaint(); }
    }//encerra o calcula...




      //checkboxes
    public void itemStateChanged(ItemEvent e) {

        if (e.getSource() == cb1) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                if (jT1.getText().equals("0")) {
                    jT1.setText("");
                }
                if (jT1.getText().equals("1") || jT1.getText().equals("")) {
                    j1 = 1;
                } else {
                    j1 = Integer.parseInt(jT1.getText());
                }
                j1 = j1 * (-1);
                jTvalor11.setText("a tem valor negativo. a= " + j1);
                negativo1 = true;
            }
            if (e.getStateChange() == ItemEvent.DESELECTED) {
                negativo1 = false;
            }





        }
        if (e.getSource() == cb2) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                if (jT2.getText().equals("0")) {
                    jT2.setText("");
                }
                if (jT2.getText().equals("1") || jT2.getText().equals("")) {
                    j2 = 1;
                } else {
                    j2 = Integer.parseInt(jT2.getText());
                }
                j2 = j2 * (-1);
                jTvalor12.setText("b tem valor negativo. b= " + j2);
                negativo2 = true;
            }
            if (e.getStateChange() == ItemEvent.DESELECTED) {
                negativo2 = false;
            }

        }

        if (e.getSource() == cb3) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
                if (jTresultado.getText().equals("0")) {
                    jTresultado.setText("");
                }
                if (jTresultado.getText().equals("1") || jTresultado.getText().equals("")) {
                    jresultado = 1;
                } else {
                    jresultado = Integer.parseInt(jTresultado.getText());
                }
                jresultado = jresultado * (-1);
                jTvalor13.setText("c tem valor negativo. c= " + jresultado);
                negativo3 = true;
            }
            if (e.getStateChange() == ItemEvent.DESELECTED) {
                negativo3 = false;
            }
        }



    }




    public static void main(String[] raghy) {
        JFrame frame = new Equacao1Grau();
        frame.setVisible(true);
    }
}

bem para funcionar, talvez, falte a classe base, se colocar ela nos pacotes certos ou fazer as alteracoes dos nomes dos pacotes claro…

segue a classe base…


package descobriroxis;

import java.awt.Color;
import javax.swing.JFrame;

/**
 *
 * @author raghy
 */
public class ClasseBase extends JFrame{

    public ClasseBase () {

        setTitle("teste grafico");
        setBounds(100,75,800,450);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
       getContentPane().setBackground(new Color(255,245,180));

    }



      public static void main(String[]raghy) {

          new ClasseBase().setVisible(true);


      }
}