Introducir datos desde el Teclado con JTextField en un JFrame en Java

Dale amor a este post!!!

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.


Dale amor a este post!!!