Foros del Web » Programación para mayores de 30 ;) » Java »

Como validar datos en el ejemplo?

Estas en el tema de Como validar datos en el ejemplo? en el foro de Java en Foros del Web. Hola Todos: Necesito que me digan como hago para validar datos en programas como el que mostrare; que me diga si falta algún campo por ...
  #1 (permalink)  
Antiguo 28/02/2005, 12:31
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 3 meses
Puntos: 0
Como validar datos en el ejemplo?

Hola Todos:
Necesito que me digan como hago para validar datos en programas como el que mostrare; que me diga si falta algún campo por ingresar un número o si he ingresado una letra u otro carácter.
Soy novato y estoy comenzando a manejar la parte grafica, el programa es muy sencillo, tengo campos para digitar 3 números y un Botón para sumar los tres números, esta funcionando pero si dejo un campo en blanco no hace nada, me gustaría que saliera un mensaje, algo así como digite solo números.

Espero puedan darme la forma de controlar eso, ya que para mi es un poco complicado.
Pero estoy dando mis primeros pasos en Java y interactuando con la parte grafica.

import java.awt.*;
import java.applet.*;

public class Peque extends Applet
{
private Label l1, l2, l3, lRta;
private TextField t1, t2, t3, tRta;
private Button ejecutar;

private double num1, num2, num3, numy1;

public void init()
{
setLayout(null);

l1 = new Label("X1");
t1 = new TextField(10);

l2 = new Label("X2");
t2 = new TextField(10);

l3 = new Label("X3");
t3 = new TextField(10);

lRta = new Label("Y= ");
tRta = new TextField(10);


tRta.setEditable(false);

ejecutar = new Button("SUMAR>>>");


add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(lRta);
add(tRta);

add(ejecutar);

l1.reshape (10, 10, 20, 20);
t1.reshape (60, 10, 60, 20);
l2.reshape (10, 40, 20, 20);
t2.reshape (60, 40, 60, 20);
l3.reshape (10, 70, 30, 20);
t3.reshape (60, 70, 60, 20);
lRta.reshape (10, 100, 30, 20);
tRta.reshape (60, 100, 60, 20);
ejecutar.reshape (100, 140, 60, 20);
}

public boolean action(Event e, Object o)
{
if(e.target == ejecutar)
{
Double dnum1 = new Double(t1.getText() );
num1 = dnum1.doubleValue();

Double dnum2 = new Double(t2.getText() );
num2 = dnum2.doubleValue();

Double dnum3 = new Double(t3.getText() );
num3 = dnum3.doubleValue();

numy1 = (double) (num1 + num2 + num3);

tRta.setText("" + numy1);

return true;
}

return true;

}
}
  #2 (permalink)  
Antiguo 01/03/2005, 19:34
 
Fecha de Ingreso: julio-2004
Mensajes: 194
Antigüedad: 19 años, 10 meses
Puntos: 1
if(campo.getText()=="")
/* Mensaje de error aqui*/
else
/*proceso los datos*/


Espero que eso te de la idea de como validar un campo. si el campo tiene datos String los comparas con equalsIgnoreCase().

Espero orientarte a tu solucion.

Saludos
__________________
"Hay Algo Activo en el piso de Abajo..."

K-Seraph Blog
  #3 (permalink)  
Antiguo 19/03/2005, 09:46
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 3 meses
Puntos: 0
no he podido validar datos que viene de un TextField

Hey K-seraph

Estoy un poco perdido además que muy ocupado por eso no había tenido tiempo para aprobar esta duda.
Bueno lo que tu dices es que cada vez que capturo un dato de un TextField lo valide, pero en el ejemplo se oprime el botón, y es ahí cuando trabaja con los datos ingresados, y es cuando debe validar.
Mi pregunta de nuevo es como comprar las tres variables que se ingresan que sean valores numéricos como float - long – int. Ósea como las comparo con un tipo.
Porque partiendo del caso que se ingresen muchos datos al final me los evalué todos y no uno por uno.

Espero me ayuden.
  #4 (permalink)  
Antiguo 26/03/2005, 00:47
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 3 meses
Puntos: 0
Solucionada la duda

Leyendo diferentes libros encontre la forma, y son las excepciones, o el manejo de errores, me fue muy bien y por fin supere este inconveniente que tenia.
Bueno para los que están aprendiendo como yo y tiene esta misma duda colocare un ejemplo, si tiene alguna pregunta a cerca del código solo escriban aquí.
Bueno este código es con una interface de usuario, es muy simple, pero es un bueno comienzo.
Hace una suma de dos números, por una parte suma dos números enteros; por la otra parte suma dos números con punto flotante, el caso es que detecta cuando ingresamos algún carácter o símbolo especial, en fin pruébenlo y me comentan.

public class Suma2numeros extends Applet
{
private Label l1, l2, lRta, l3, l4, lSol;
private TextField t1, t2, tRta, t3, t4, tSol;
private Button ejecutar, correr;

private int num1, num2, numRta;
private double num3, num4, numSol;

public void init()
{
setLayout(null);

l1 = new Label("numero 1: ");
t1 = new TextField(10);

l2 = new Label("numero 2: ");
t2 = new TextField(10);

lRta = new Label("Total = ");
tRta = new TextField(10);

tRta.setEditable(false);

ejecutar = new Button("SUMAR >>>");

l3 = new Label("number 1: ");
t3 = new TextField(10);

l4 = new Label("number 2:");
t4 = new TextField(10);

lSol = new Label("RTA =");
tSol = new TextField(10);

tSol.setEditable(false);

correr = new Button("SUMAR>>>");

add(l1);
add(t1);
add(l2);
add(t2);
add(lRta);
add(tRta);
add(ejecutar);

add(l3);
add(t3);
add(l4);
add(t4);
add(lSol);
add(tSol);
add(correr);

l1.reshape(10, 10, 60, 20);
t1.reshape(80, 10, 60, 20);
l2.reshape(10, 40, 60, 20);
t2.reshape(80, 40, 60, 20);
lRta.reshape(10, 70, 60, 20);
tRta.reshape(80, 70, 60, 20);
ejecutar.reshape(60, 100, 80, 20);

l3.reshape(200, 10, 60, 20);
t3.reshape(270, 10, 60, 20);
l4.reshape(200, 40, 60, 20);
t4.reshape(270, 40, 60, 20);
lSol.reshape(200, 70, 60, 20);
tSol.reshape(270, 70, 60, 20);
correr.reshape(250, 100, 80, 20);
}

public boolean action(Event e, Object o)
{
if(e.target == ejecutar)
{
try
{
num1 = Integer.parseInt(t1.getText() );
num2 = Integer.parseInt(t2.getText() );

numRta = num1 + num2;
tRta.setText("" + numRta);
repaint();
}

catch(NumberFormatException msg)
{
// Si hubo error entra a este bloque
tRta.setText("Error");
showStatus("Digite solo numeros enteros, no digite letras ni caracteres");
repaint();
}
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.