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!
Melhor ainda é só deixar o usuário entrar números, e ignorar caso ele digite letras. Para isso:
- Copie essas classes para seu projeto: http://www.guj.com.br/java/107425-como-fazer-para-o-campo-textfield-receber-so-numeros#579803
- Faça:
seuTextField.setDocument(new IntegerDocument(5));
Onde 5 é o número máximo de dígitos que você quer para o número.
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);
}
}