Cuando estamos programando con JFrame es muy común utilizar jTextField para introducir datos desde el teclado, ya sea en aplicaciones sencillas o aplicaciones de tipo formulario, y al igual que con la clase Scanner y la clase JOptionPane.showInputDialog, resulta muy sencillo de ocupar.
Para este ejemplo ocuparemos un JFrame como el que aparece en la siguiente imagen:
Y nos vamos a centrar en el metodo ActionPerformed del jButton1 (Boton de ENVIAR).
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
}
Dentro de este método vamos a llamar a jTextField1 y vamos a utilizar el método getText() para obtener el texto que este escrito dentro de jTextField1 y lo vamos a asignar a la variable nombre.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String nombre=jTextField1.getText();
int edad=Integer.parseInt(jTextField2.getText());
}
Todo valor que se obtenga dentro del método getText() es de tipo String por lo que se debe realizar la conversión o parseo correspondiente depende del tipo de dato al cual se quiera convertir, por ejemplo en caso de la variable edad se convierte a Int.
Después vamos a concatenar la variable nombre y la variable edad y la mostraremos en un showMessageDialog, de igual forma la mostramos en el jTextArea con el método setText.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String nombre=jTextField1.getText();
int edad=Integer.parseInt(jTextField2.getText());
String resultado="Nombre: "+nombre+"\n"+"Edad: "+edad;
JOptionPane.showMessageDialog(null,resultado);
jTextArea1.setText(resultado);
}
Para finalizar y solo para evitar errores al momento que se introduzca una edad que no sea de tipo Int vamos a agregar una excepción utilizando try catch y queda de la siguiente manera:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String nombre=jTextField1.getText();
int edad=0;
try{
edad=Integer.parseInt(jTextField2.getText());
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null,"No es una edad válida");
}
String resultado="Nombre: "+nombre+"\n"+"Edad: "+edad;
JOptionPane.showMessageDialog(null,resultado);
jTextArea1.setText(resultado);
}
Puedes encontrar la explicación en video aquí:
Si tienes mas dudas acerca de la Clase jTextField en Java, puedes buscar directamente en la documentación de Oracle:
https://docs.oracle.com/javase/8/docs/api/javax/swing/JTextField.html
Gracias por leer este post, saludos.