[Duda] - ¿Cómo preguntarle a un JTextField si lo que tiene es una cadena?
Primero que nada: Buenas noches, no sabía que existia una pagina dedicada a Java que fuera mexicana.
Soy estudiante de Lic. en Ciencias Computacionales, estoy intentando mejorar un programita que nos dejo el profesor.
Me gustaría saber como preguntarle a un JLabel si lo que tiene son letras o numeros enteros.
Por ejemplo, para preguntarle si esta vacia hago:
Ahora bien quiero que quede algo así...
Puesto que tal vez el usuario accidentalmente ponga una cadena.
-----
Adicionalmente:
Tengo un boton que "jala" los datos del TextField, el codigo va así :
public void actionPerformed(ActionEvent arg0) {
a.push(Integer.parseInt(JTextField.getText())); //a es una instancia de una clase que hemos creado.
actual=textArea.getText(); //Actual es una instancia de una clase String que guarda lo que se va insertando en la pila, para despues ponerlo en el JTextArea con otro botón.
JTextField.setText("")
}
});
- Inicie sesión o regístrese para enviar comentarios
eh?
Un JLabel y un JTextField SIEMPRE manejan cadenas. Incluso si el usuario teclea "12345", vas a obtener una cadena con los caracteres "12345".
La manera de comparar cadenas en Java es con el método
equals
. Si usas el operador == estás comparando que sean exactamente la misma referencia a la misma cadena. Este código debe estar unas 50mil veces ya en este sitio pero bueno, una más:String b = new String("a");
assert a.equals(b); //true
assert a == b; //false
assert a.isEmpty(); //false
assert "".isEmpty(); //true
Si lo que quieres es validar que el usuario solamente pueda meter números hay de dos: puedes intentar convertir la cadena a número como haces con el
Integer.parseInt
o puedes ponerle un TextListener al JTextField que filtre los caracteres que el usuario puede meter, para que sean por ejemplo sólo del 0 al 9 (si es que quieres aceptar solamente enteros positivos), o que en cualquier momento el texto del campo coincida con una expresión regular, si es que quieres números con signo, sin signo, con o sin punto decimal, con o sin separadores de millares, con o sin exponente, etc.Una alternativa
Una alternativa podria ser usar el componente llamado JFormattedTextField en esta pag hay algunos ejemplos.
Este tema se ha visto mucho
Este tema se ha visto mucho en la red: checa este link